@cyberpunk3351
Актвино изучаю php

Проблемам с кодом в Wordpress?

Есть слайдер, есть код:

<?php 
                        $posts = get_posts( array(
                            'numberposts' => -1,
                            'category_name'    => 'slider',
                            'orderby'     => 'date',
                            'order'       => 'DESC',
                            'post_type'   => 'post',
                            'suppress_filters' => true, 
                        ) );

                        foreach( $posts as $post ){
                            setup_postdata($post);
                            ?>
                            <div class="glide__slide">
                                <div class="contetn">
                                    <?php the_post_thumbnail('full'); ?>
                                    <div class="text">
                                        <h3><?php the_title() ?></h3>
                                        <p><?php the_excerpt() ?></p>
                                        
                                    </div>
                                </div>
                            </div>
                            <?php
                        }

                        wp_reset_postdata(); // сброс                        
                        ?>


Выпадает ошибка:
Notice: Undefined offset: 2 in C:\xampp\htdocs\wp\wp-includes\class-wp-query.php on line 3252

Нашел этот файл в строке 3252 содержится:
$this->post = $this->posts[ $this->current_post ];
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@cyberpunk3351 Автор вопроса
Актвино изучаю php
Как писал Alex. Не нужно использовать setup_postdata ни wp_reset_postdata.

Проблему решил так, заменив этот кусок кода:

$posts = get_posts( array(
                        'numberposts' => -1,
                        'category_name'    => 'slider',
                        'orderby'     => 'date',
                        'order'       => 'DESC',
                        'post_type'   => 'post',
                        'suppress_filters' => true, 
                    ) );

                    foreach( $posts as $post ){


этим:

$args = array( 'posts_per_page' => 2 );
                    $lastposts = get_posts( $args );
                    foreach( $lastposts as $post ){


и все заработало!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Kozack
@Kozack Куратор тега WordPress
Thinking about a11y
Notice: Undefined offset
Это не совсем ошибка. Это лишь сообщение о том, что в $this->posts нет ничего по ключу $this->current_post
Я бы на вашем месте не использовал ни setup_postdata ни wp_reset_postdata.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы