@freeman0204

Почему WP_Query{} не работает?

Сначала использовал обычный цикл.

<?php if ( have_posts() ) :  while ( have_posts() ) : the_post(); ?>
 <div class="item wow bounceInUp" data-wow-offset="10">
                    <span><i class="fa fa-briefcase"></i></span>
                    <div class="wrap-content">
                        <h2><?php the_title() ?></h2>
                        <?php the_content() ?>
                    </div>
                </div>
                <?php endwhile; ?>
                <?php endif; ?>

У меня на сайте 2 блока (секции). В первом блоке 6 постов а втором около 20. Когда делал первый блок с постами, использовал обычный цикл что выше. Но оказалось что если взять в этот же цикл посты с второй секции их будет то же количество что в первой секции.

Мне посоветовали более сложный цикл WP_Query{}.

<?php

$args = array(
    // Аргументы для запроса.
);

// Произвольный запрос.
$query = new WP_Query( $args );

// Проверка результатов запроса.
if ( $query->have_posts() ) {

   <div class="item wow bounceInUp" data-wow-offset="10">
                    <span><i class="fa fa-briefcase"></i></span>
                    <div class="wrap-content">
                        <h2><?php the_title() ?></h2>
                        <?php the_content() ?>
                    </div>
                </div>
    while ( $query->have_posts() ) {

        $query->the_post();

        // Содержимое запрошенных результатов начинается отсюда.

    }

}

// Восстановление исходных данных записи.
wp_reset_postdata();

?>


Но он почему то не работает. Выдает ошибку на этой строке.
<div class="item wow bounceInUp" data-wow-offset="10">
Что это может быть?
  • Вопрос задан
  • 625 просмотров
Решения вопроса 2
@tursumbekov
PHP, CMS, frontend
<div class="item wow bounceInUp" data-wow-offset="10">
                    <span><i class="fa fa-briefcase"></i></span>
                    <div class="wrap-content">
                        <h2><?php the_title() ?></h2>
                        <?php the_content() ?>
                    </div>
                </div>

Это должно быть после
while ( $query->have_posts() ) {

        $query->the_post(); ?>

У Вас даже комментарий есть:
"// Содержимое запрошенных результатов начинается отсюда."
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Потому что у вас мешанина из php и html, без открывающих и закрывающих php-тегов в нужных местах. Ну и сам код не там где надо.
<?php
$args = array(
    // Аргументы для запроса.
);

// Произвольный запрос.
$query = new WP_Query( $args );

// Проверка результатов запроса.
if ( $query->have_posts() ) {
    // Начало цикла
    while ( $query->have_posts() ) {
        $query->the_post();

// Перед выводом html необходимо закрыть php-тег
?>

<div class="item wow bounceInUp" data-wow-offset="10">
    <span><i class="fa fa-briefcase"></i></span>
    <div class="wrap-content">
        <h2><?php the_title() ?></h2>
        <?php the_content() ?>
    </div>
</div>
   
<?php // А если снова перешли к php - снова открываем тег
    } // А тут закрыли цикл while
} // А тут закрыли if

// Восстановление исходных данных записи.
wp_reset_postdata();
?>


В общем, мухи отдельно, котлеты отдельно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
03 мая 2024, в 11:30
30000 руб./за проект
03 мая 2024, в 11:01
50000 руб./за проект
03 мая 2024, в 10:56
5000 руб./за проект