Я получаю результаты запроса, но получаю синтаксические ошибки, например
syntax error, unexpected '<' in /wp-content/plugins/php-code-widget/execphp.php(27) : eval()'d code on line 32.
Если кто-то может указать на синтаксическую ошибку, я был бы признателен. Я изучал ссылки, но все еще очень новичок в кодировании PHP.
<?php
$now = new \DateTime('now');
$month1 = $now->format('m');
$day1= $now->format('j');
$month = strval($month1);
$day = strval($day1);
echo $day . $month;
$args = array(
'relation' => 'AND',
'numberposts' => -1,
'post_type' => 'page',
array(
'key' => 'month',
'value' => '$month',
'compare' => '=',
'type' => 'CHAR',
),
array(
'key' => 'day',
'value' => '$day',
'compare' => '=',
'type' => 'CHAR',
),
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) : $the_query->the_post();
<?php $id = $post->ID; $thumb = get_the_post_thumbnail($id, 'full'); ?>
<li>
<a href = "<?php the_permalink(); ?>">
<?php echo $thumb; ?>
<?php the_title(); ?> (Today)
</a>
</li>
<?php endwhile; ?>
echo '</ul>';
}
?>
<?php wp_reset_query();?>






Вот ссылка, по которой можно щелкнуть, чтобы поговорить о конкатенации вашего php-текста. Я рекомендую вам объединять, где это возможно, вместо того, чтобы постоянно вмешиваться и выходить из php.
Когда вы запускаете скрипт php с помощью тега php, все внутри тега php является инструкциями, которые выполняются на сервере php. Как только вторжения будут выполнены, результат кода будет выведен в браузер.
<?php
$a = 'Hello';
$b = 'world!';
echo $a . ' ' . $b; //Will output "Hello world!"
?>
В приведенном выше примере тег php был закрыт. ?>. Все после этого будет выведено прямо в браузер.
<?php
$a = 'Hello';
$b = 'world!';
echo $a . ' ' . $b; //Will output "Hello world!"
?>
<div>
This html will be directly outputted to the browser.
</div>
Теперь нам может потребоваться добавить еще немного php. Мы можем объединить приведенный выше пример, объединив div, чтобы он выполнялся сервером и выводился в браузер.
<?php
$a = 'Hello';
$b = 'world!';
echo $a . ' ' . $b; //Will output "Hello world!"
echo
'<div>
This will be outputted to the browser as a result of the execution of the php by the server.
Lets write "' . $a . ' ' . $b . '" again.
</div>';
?>
Обратите внимание, что мне никогда не приходилось входить и выходить из php с помощью тегов <?php или ?>.
Также я хотел бы найти хороший редактор кода. Я использую Атом. Вы можете настроить php-линтер, который будет показывать, где вы делаете ошибки при написании кода. Он также имеет некоторые функции Inteltype, которые автоматически подставляют имена переменных и функций по мере ввода. Вот ссылка на атом. Вам нужно будет добавить плагин линтера после установки. Вы сможете найти материалы на Stack Overflow и в Google, которые помогут вам в этом. Как только вы его настроите, он вам очень понравится.
Что касается вашего кода, я переписал его, как показано в приведенном выше примере. Ну вот.
<?php
$now = new \DateTime('now');
$month1 = $now->format('m');
$day1= $now->format('j');
$month = strval($month1);
$day = strval($day1);
echo $day . $month;
$args = array(
'relation' => 'AND',
'numberposts' => -1,
'post_type' => 'page',
array(
'key' => 'month',
'value' => '$month',
'compare' => '=',
'type' => 'CHAR',
),
array(
'key' => 'day',
'value' => '$day',
'compare' => '=',
'type' => 'CHAR',
),
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts()) {
echo
'<ul>';
while ($the_query->have_posts()) : $the_query->the_post();
$id = $post->ID; $thumb = get_the_post_thumbnail($id, 'full');
echo
'<li>' .
'<a href = "' . the_permalink() . '">' . $thumb . the_title() . (Today) . '</a>' .
'</li>';
endwhile;
echo
'</ul>';
}
wp_reset_query();
?>
Заметьте, что я никогда не ломался и не выходил из PHP.
Надеюсь, это немного поможет вам в будущем.
Спасибо! Мне нравится этот подход - просто оставаться в php. Намного проще, чем ковырять и выходить. Большое вам спасибо за время, которое вы потратили, чтобы пройти через все это. Вы прояснили всю путаницу, которая приходила мне в голову из-за видеороликов на YouTube, и гуглила (плохие) примеры. У меня есть Atom, спасибо, что нашли время порекомендовать его. Я чувствую, что действительно научился у тебя. Я ценю его!
Эй, нет проблем! Взламывать и выходить из php - это нормально, просто нет необходимости делать это постоянно. Иногда проще написать большой блок html и поместить несколько разделов php или наоборот. Просто стараюсь не делать это часто. И не забудьте установить линтер на Атоме, он вам очень понравится.
вы уже находитесь в «контексте» php, поэтому
<?phpсразу после этого не нужен и ошибочен.