Wordpress获取发布的类别尝试了wordpress文章

时间:2018-01-31 10:13:53

标签: php wordpress

我正在尝试通过WordPress中的类别获取帖子我的面板中有类别部分,我已将类别添加为英语,但是当我尝试在数组中提供该类别时,添加category时看不到任何更改添加category_name时的属性不返回任何内容

$book = array(
    'post_type' => 'book',
    'paged'=> $paged,
     'category'         => 'English',
    'category_name'    => 'English',
     'posts_per_page'         => '12'
);

3 个答案:

答案 0 :(得分:1)

类别参数仅适用于默认的WordPress帖子。 使用自定义帖子类型时,您必须使用tax_query。

new WP_Query( array(
    'post_type' => 'book',
    'tax_query' => array(
        array (
            'taxonomy' => 'your_custom_taxonomy_slug_here',
            'field' => 'slug',
            'terms' => 'english',
        )
    ),
) );

https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

答案 1 :(得分:0)

尝试使用此代码:

$book = array(
  'post_type'      => 'book',
  'paged'          => $paged,
  'category_name'  => 'english',
  'posts_per_page' => 12,
);
$query = new WP_Query( $book );

没有名为' category'的参数。所有类别参数:

  • cat(int) - 使用类别ID。
  • category_name(字符串) - 使用类别 蛞蝓。
  • category__和(array) - 使用类别ID。
  • category__in(数组) - 使用类别ID。
  • category__not_in(array) - 使用类别ID。

因此,如果您使用'类别名称'查询使用类别slug获取具有这些类别的帖子。

有关详细信息,请参阅this link to Wordpress Codex

答案 2 :(得分:0)

试试这个



$custom_terms = get_terms('english');

foreach($custom_terms as $custom_term) {
    wp_reset_query();
    $args = array('post_type' => 'book',
        'tax_query' => array(
            array(
                'taxonomy' => 'english',  //The name of the taxonomy. Name should be in slug form (must not contain capital letters or spaces). 
                'field' => 'slug',
                'terms' => $custom_term->slug,
            ),
        ),
     );

     $loop = new WP_Query($args);
	 print_r($loop);die;
     if($loop->have_posts()) {
        echo '<h2>'.$custom_term->name.'</h2>';

        while($loop->have_posts()) : $loop->the_post();
            echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>';
        endwhile; 
     }
}
&#13;
&#13;
&#13;

请注意分类标准的名称。名称应为slug形式(不得包含大写字母或空格)。