Wordpress query_posts从未指定的类别返回帖子

时间:2013-05-21 08:09:09

标签: php wordpress

我正在尝试使用query_posts从类别中检索帖子,但它从未指定的类别返回帖子,其他参数如sort和showposts工作正常。

extract(shortcode_atts(array(
            'categories' => 'Partners',
            'imageswidth' => '200px',
            'imagesheight' => '115px',
            'imageslink' => 'Web_Link',
            'partnerscount' => 'All',
            'columnscount' => 1,
            'imagescrop' => 'No',
            'imagesblackhovercolor' => 'No',
            'imagesopacity' => 100,
            'imagesgrayscale' => 'No',
            'imagescolorize' => '',
            'imagesnegative' => 'No',
            'imagessort' => 'Date ASC'
        ), $atts));

        //$args = "category_name=".categories;
        //$catIDs = get_cat_ID( $cat_name='Partners' );

        $args = "cat_name=".categories;
        $args .= strtolower($partnerscount) != "all" ? "&showposts=".$partnerscount : '';
        $args .= $imagessort == "Date_ASC" ? "&orderby=date&order=ASC" : '';
        $args .= $imagessort == "Date_DSC" ? "&orderby=date&order=DESC" : '';
        $args .= $imagessort == "Random" ? "&orderby=rand" : '';



        query_posts($args);

while ( have_posts() ) : the_post();
        {
$output = $output.get_the_title();
}

1 个答案:

答案 0 :(得分:1)

根据wordpress文档(http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters

要显示某个类别的帖子,您可以使用下一个参数:

  

cat(int) - 使用类别ID。

     

category_name(string) - 使用类别slug(NOT name)。

     

category__和(array) - 使用类别ID。

     

category__in(array) - 使用类别ID。

     

category__not_in(array) - 使用类别ID。

正确的参数是:category_name而不是cat_name。 替换:

$args = "cat_name=".categories;

使用:

$args = "category_name=".$categories;

虽然Partners是该类别的slug,但应解决您的问题。

修改1:

请注意,您在没有$符号的情况下写了categories。 PHP将其视为已定义而非变量。 试试这一行:     $ args =“category_name =”。$ categories;

编辑2: 如果你不能获取该类别的slug, 尝试按名称获取它的ID。

    $catID = get_cat_ID( $categories );
    $args = "cat=".$catID;