自定义主题不会过滤类别

时间:2013-05-20 作者:Marpo

我目前正在为我的大学作业完成第一个合适的wordpress主题。当我在侧边栏中选择一个类别时,所有类别的帖子的完整列表仍会显示出来。我尝试过在线搜索,但似乎找不到解决方法。

我目前正在建设的网站是http://bluepenguindesigns.co.uk/. 这是当前类别。php内容-http://pastebin.com/89jiFB5i

1 个回复
最合适的回答,由SO网友:Charles Clarkson 整理而成

变量$theTitle不会插入到单引号字符串中。

query_posts(\'category_name=.$theTitle&orderby=rand\');
将要求使用该字符串$标题不会替换为标题和点(.)将保留在查询中。结果将是不可预测的。

因此,请使用双引号字符串:

query_posts( "category_name={$theTitle}&orderby=rand" );
或者更改参数的顺序并连接标题。

query_posts( \'orderby=rand&category_name=\' . $theTitle );
是否确实要使用query_posts() 在作业中?这不像是告诉老师你没有读documentation 上面写着“不要使用query\\u posts()”。

编辑:

显然,query\\u posts()函数使用WP\\u query的参数,这很有意义。

The instructions 假设您应该使用类别slug,而不是类别名称:category_name (string) - use category slug (NOT name). 我不知道他们为什么不给那个paramteter起名category_slug

因此,首先我们需要得到类别slug。

function wpse_100126_get_category_slug() {

    $current_cat = get_category( get_query_var( \'cat\' ) );

    return $current_cat->slug;
}
然后将其插入查询:

query_posts( \'orderby=rand&category_name=\' . wpse_100126_get_category_slug() );

结束

相关推荐

WP_LIST_CATEGORIES,将类添加到具有子项的所有列表项

我正在使用wp_list_categories(); 要显示自定义分类法中所有术语的列表,但我需要为具有子级的列表项设置与不具有子级的列表项不同的样式。有没有一种方法,PHP或jQuery,我可以给所有父元素一个特殊的类?