使用 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();

}


?>


至尊宝的传说
浏览 155回答 2
2回答

慕斯王

tax_query takes an array of tax query arguments arrays (it takes an array of arrays) but you are using only single array. The correct code is as followingadd_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'];$categories = get_terms(array('tshirt'),array('hide_empty' => false));      foreach( $categories as $cat )       {           $args = array(       'post_type' => 'products',       'posts_per_page' => 1,       'tax_query' => array( array('taxonomy' => 'tshirt','field' => 'slug',        'terms' => $slug)));    $q = new WP_Query($args);    if( $q->have_posts()):        while( $q->have_posts()):            $q->the_post();            echo 'post here';        endwhile;    endif;       }}

幕布斯6054654

是的,所以我的代码设置不正确......这是在自定义类别中获取第一个自定义帖子的正确方法: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();}?>
打开App,查看更多内容
随时随地看视频慕课网APP