Wordpress Ajax Фильтр Настраиваемый тип записи по категориям возвращает [found_posts ": 0,] - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу вывести сообщение по категории через фильтр ajax. Он работает со стандартным типом поста в той же настройке, но с пользовательским типом поста он показывает все посты при загрузке страницы, но когда я нажимаю на ссылку категории, он показывает только правильный идентификатор категории "Array ([action] => filter_wb [category ] => 17) "

И когда я вывожу запрос $, он показывает [found_posts": 0,],

, поэтому я думаю, что он не находит содержимое категории.

Я уже проверил, если категория пуста, но когда я фильтрую ее в бэкэнде, там есть посты ... Все файлы есть. jquery работает, а xhr получает admin- ajax. php 200.

Я занимаюсь этим слишком долго и не могу понять.

Может быть, у вас есть несколько советов для меня.

// post template

</header><!-- .entry-header -->

        <div class="post-filter-wrapper">
            <ul class="post-filter">
                <li><a class="js-filter-item-wb" href="<?= home_url(); ?>">All</a></li>
                <?php 
                $cat_args = array(
                    'taxonomy' => 'category_wb',
                    'exclude' => array(1),
                    'option_all' => 'All'
                );

                $categories = get_categories($cat_args);
                foreach($categories as $cat) : ?>

                <li><a class="js-filter-item-wb" data-category="<?= ($cat->term_id); ?>" href="<?= get_category_link($cat->term_id); ?>"><?= $cat->name; ?></a></li>    
                <?php endforeach; ?>
            </ul>
        </div>

        <div class="grid grid--3col-grid js-filter">    
        <?php 

        $args = array (
            'post_type' => 'wuerzburg',
            'posts_per_page' => -1,
        );

        $query = new WP_Query($args);

        if($query->have_posts()) : 
            while($query->have_posts()) : $query->the_post();
                echo '<div class="grid__post-wrapper" id="post' . get_the_ID() . '">'; // grid-post-wrapper
                echo '<h2 class="grid__preview-title"><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>';
                echo '<div class="grid__preview-image-wrapper"><a class="grid__preview-image" href="' . get_permalink() . '">' . get_the_post_thumbnail() . '</a></div>';
                echo '<div class="grid__the-excerpt">' . get_the_excerpt() . '</div>';
                echo '<div class="btn-custom-wrapper"><a class="btn-custom-a btn-custom-a--dark" href="' . get_the_permalink() . '">Vorbeischauen</a></div>';
                echo '</div>'; // end of grid-post-wrapper
            endwhile;
        endif;
        wp_reset_postdata(); ?>
        </div><!-- js-filter -->    

// jQuery фильтрация

(function($) {
      //$(document).ready(function(){
            $(document).on('click', '.js-filter-item-wb', function(e){
                  e.preventDefault();

                  var category = $(this).data('category');

                  $.ajax({
                        url: wp_ajax.ajax_url,
                        data: { action: 'filter_wb', category: category },
                        type: 'post',
                        success: function(result) {
                              $('.js-filter').html(result);
                              console.log('i work')
                        },
                        error: function(result) {
                        console.warn(result);
                        }

                  });
            });



      //});
})(jQuery);

// php фильтр


add_action( 'wp_ajax_nopriv_filter_wb', 'filter_wb_ajax' );
add_action('wp_ajax_filter_wb', 'filter_wb_ajax' );


function filter_wb_ajax() {

    $category = $_POST['category'];

    $args = array (
        'post_type' => 'wuerzburg',
        'posts_per_page' => -1,

    );

    if(isset($category)) {
        $args['category__in'] = array($category);
    }

    $query = new WP_Query($args);




    if($query->have_posts()) : 
        while($query->have_posts()) : $query->the_post();
            echo '<div class="grid__post-wrapper" id="post' . get_the_ID() . '">'; // grid-post-wrapper
            echo '<h2 class="grid__preview-title"><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>';
            echo '<div class="grid__preview-image-wrapper"><a class="grid__preview-image" href="' . get_permalink() . '">' . get_the_post_thumbnail() . '</a></div>';

                //output testing
                echo 'i should print';
                //output testing

            echo '<div class="grid__the-excerpt">' . get_the_excerpt() . '</div>';
            echo '<div class="btn-custom-wrapper"><a class="btn-custom-a btn-custom-a--dark" href="' . get_the_permalink() . '">Vorbeischauen</a></div>';
            echo '</div>'; // end of grid-post-wrapper
        endwhile;
    endif;
    wp_reset_postdata(); 


    print_r($_POST);wp_die();
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...