首页 > 解决方案 > 使用 Category Slug Wordpress 获取第一篇文章

问题描述

我有一个 ajax 调用,应该在 onclick 类别中显示第一个自定义帖子。我的代码似乎设置正确,但我似乎无法得到帖子。这是我的代码:

add_action( 'wp_ajax_nopriv_load-products-default', 'prefix_load_default_cat_posts' );
add_action( 'wp_ajax_load-products-default', 'prefix_load_default_cat_posts' );
function prefix_load_default_cat_posts(){

   $slug = $_POST['cat'];

//    echo $slug;

   $args = array(
       'post_type' => 'products',
       'posts_per_page' => 1,
       'category_name' => $slug
   );

    $q = new WP_Query($args);

    if( $q->have_posts()):
        while( $q->have_posts()):

            $q->the_post();

            echo 'post here';

        endwhile;
    endif;

    die();
}

?>

标签: phpajaxwordpressloops

解决方案


是的,所以我的代码设置不正确......这是在自定义类别中获取第一个自定义帖子的正确方法:

add_action( 'wp_ajax_nopriv_load-products-default', 'prefix_load_default_cat_posts' );
add_action( 'wp_ajax_load-products-default', 'prefix_load_default_cat_posts' );
function prefix_load_default_cat_posts(){

   $slug = $_POST['cat'];

    //    echo $slug;

   $args = array(
       'post_type' => 'products',
       'posts_per_page' => 1,
       'order' => 'ASC',
       'tax_query' => array(
           array(
               'taxonomy' => 'brand',
               'field' => 'slug',
               'terms' => $slug
           ),
       ),
   );

   $q = new WP_Query($args);

   if( $q->have_posts()):

        while( $q->have_posts()):

            $q->the_post();

            the_title();

        endwhile;

   endif;   

    die();
}

?>

推荐阅读