Базовое форматирование php + html

Я получаю результаты запроса, но получаю синтаксические ошибки, например

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 сразу после этого не нужен и ошибочен.

Jeff 05.07.2018 03:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот ссылка, по которой можно щелкнуть, чтобы поговорить о конкатенации вашего php-текста. Я рекомендую вам объединять, где это возможно, вместо того, чтобы постоянно вмешиваться и выходить из 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, спасибо, что нашли время порекомендовать его. Я чувствую, что действительно научился у тебя. Я ценю его!

Randal Oulton 05.07.2018 18:53

Эй, нет проблем! Взламывать и выходить из php - это нормально, просто нет необходимости делать это постоянно. Иногда проще написать большой блок html и поместить несколько разделов php или наоборот. Просто стараюсь не делать это часто. И не забудьте установить линтер на Атоме, он вам очень понравится.

Joseph_J 06.07.2018 06:02

Другие вопросы по теме