Intereting Posts
Отображение отображаемого изображения (только img url) в качестве img src? Есть ли какие-либо требования к серверу для переходных процессов WordPress для правильной работы? Переименование пользователя-администратора при многопользовательской установке MySQL woocommerce признакам продуктов и категорий Получите все пользовательские типы сообщений пользователя в WP Admin для плагина Экранирование встроенных строк функции возврата WP Тема Divi – изображения не отображаются на первой странице Как обновить / удалить массив в метатете post? Включение пользователей для запроса пользовательского цикла WordPress настраиваемый шаблон действия Отображение динамического уведомления администратора Пользовательские метаданные в потоке активности Buddypres Удалить wp_add_inline_style Добавление пользовательского класса «Текущий элемент меню» к навигации? Безопасна ли база данных после слияния ветви более поздней версии более старой?

Синтаксическая ошибка при попытке вставить мой цикл в неупорядоченный список?

Я очень новичок в разработке PHP и WordPress, и у меня есть следующая проблема с попыткой вставить некоторый HTML-код в цикл сообщений.

Я попробовал что-то вроде этого:

<?php if (have_posts()) : <ul> // Start the Loop. while (have_posts()) : the_post(); /* * Include the post format-specific template for the content. If you want to * use this in a child theme, then include a file called called content-___.php * (where ___ is the post format) and that will be used instead. */ <li> get_template_part('contentArchive', get_post_format()); </li> endwhile; </ul> endwhile; ?> 

Поскольку вы можете видеть, что я хочу неупорядоченный список ( < ul> ) и в него, я хочу поместить один элемент списка ( < li> ) для каждой итерации цикла while , но Aptana Studio дает мне сообщение об ошибке синтаксиса на <ul> и на <li>

Зачем? В чем проблема? Как я могу это исправить?

Tnx

Solutions Collecting From Web of "Синтаксическая ошибка при попытке вставить мой цикл в неупорядоченный список?"

Вы не добавляете HTML-код в свой файл, вы добавляете недопустимый PHP.

Напомним, что в PHP все между <?php и ?> Является PHP-кодом.

Так что это верно PHP:

 <?php echo 'hello world';! ?> 

Это также справедливо:

 <b><?php echo 'hello world'; ?></b> 

Это недействительно:

 <?php <b> echo 'hello world'; </b> ?> 

Зачем? Потому что это неверный PHP. Это допустимый HTML-тег yes, но вы не поместили его в HTML, вы помещали его между тегами, поэтому это PHP-код, и это неверный PHP-код.

Sidenotes

  • Вы не правильно отпечатываете свой код. Любой хороший редактор автоматически сделает это за вас, PHPStorm имеет вариант переформатирования, Sublime авто-отступы по мере ввода, экономят время и усилия и используют редактор, который сделает это за вас. Отступы делают ваш код более легким для чтения, а ошибки легче обнаружить
  • Используйте скобки вместо сокращения, например, if( this ) { do that } , он имеет более широкую поддержку среди редакторов и проверок. Слишком легко добавить блуждающий endwhile; (ваш исходный код имеет 1 цикл while, но вы закрываете его дважды, это не имеет смысла и только путает). Если вы используете { и } хороший редактор автоматически наберет для вас закрывающий кронштейн и соответственно сделает отступ.

Итак, в заключение, ваш код должен выглядеть следующим образом:

 <?php if ( have_posts() ) { echo '<ul>'; while ( have_posts() ) { the_post(); echo '<li>'; get_template_part( 'contentArchive', get_post_format() ); echo '</li>'; } echo '</ul>'; } 

Изменения:

  • Используется эхо, чтобы распечатать html
  • удаленные посторонние пустые строки и преобразованные в вкладки
  • фиксированный отступы
  • Используемые фигурные скобки вместо синтаксиса сокращенного PHP
  • удаленный трейлинг-тег закрытия PHP, закрывающие теги не нужны в конце PHP-файла, если последнее – это PHP-код

Вы включаете HTML-элементы, не закрывая теги php. Кроме того, последний должен быть endif , а не последним.

 <?php if (have_posts()) : ?> <ul> <?php // Start the Loop. while (have_posts()) : the_post(); /* * Include the post format-specific template for the content. If you want to * use this in a child theme, then include a file called called content-___.php * (where ___ is the post format) and that will be used instead. */ ?> <li> <?php get_template_part('contentArchive', get_post_format()); ?> </li> <?php endwhile; ?> </ul> <?php endif; ?>