使用类别Slug Wordpress获得第一篇文章

时间:2019-07-18 13:43:59

标签: php ajax wordpress loops

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

bind C-b 1

2 个答案:

答案 0 :(得分:0)

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

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();
}

?>

答案 1 :(得分:0)

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 following

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'];

$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;

    
   }
}