我正在尝试使用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();
}
答案 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;