Поддержка Проблемы и решения the_excerpt() в AJAX. Почему NULL?

  • Решено moderator278

    (@moderator278)


    При использовании AJAX загрузки постов на главной, не генерируются краткие описания в отличии от первого цикла на странице.
    Первый цикл реализован через $wp_query->query() <- здесь всё хорошо.
    Второй, прописан в function.php, вызывается через admin-ajax, реализован через query_posts() и выдает null-значения the_excerpt()… в остальных значениях всё хорошо.

    Бьюсь которое количество времени, перепробовал всевозможные setup_postdata() и т.п., но пока, видимо, не смог постичь дзен.

    • Тема изменена 1 год, 8 мес. назад пользователем  moderator278.
    • Тема изменена 1 год, 8 мес. назад пользователем  moderator278.
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Как выглядит код полностью (JS и PHP)?

    C js и вызовами через него всё в порядке, я уверен. Данные получаются, проблема только в the_excerpt() и, видимо, в циклах..

    Основные моменты:
    index.php

    if (have_posts()) {
        $wp_query->set('posts_per_page', POST_PER_PAGE);
        $wp_query->query($wp_query->query_vars);
    
        while (have_posts()) {
            the_post();
            get_template_part('template-parts/post', 'content');
        }
    }

    function.php (Вызывается посредством Ajax. Это — крайний вариант. Сам запрос по-разному перестраивал и по-разному отправлял)

    $args = json_decode(stripslashes($_POST['query']), true);
    $args['paged'] = $_POST['page'] + 1;
    $args['post_status'] = 'publish';
    $args['posts_per_page'] = POST_PER_PAGE;
    
    $posts = new WP_Query($args);
    $GLOBALS['wp_query'] = $posts;
    
    while ($posts->have_posts()) {
        $posts->the_post();
        get_template_part('template-parts/post-content');
    }
    
    die();
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «the_excerpt() в AJAX. Почему NULL?» закрыта для новых ответов.