我尝试仅在作者页面中显示特定类别的帖子,使用下面代码中的get\\u选项功能,但不起作用:
<?php query_posts(\'cat=\'.get_option(\'admin_cat\')); ?>
但是,如果使用id号,则效果很好。
<?php query_posts( \'cat=6\' ); ?>
如何使用get\\u option函数代替ID号?
以后编辑:
很抱歉,我在admin选项中写的是类别名称而不是id,这是我的错误。不过,阅读这两种变体的代码会很有帮助,例如:
if admin option the category is an id
display its id
if in admin option category is a name
display its name
谢谢
最合适的回答,由SO网友:s_ha_dum 整理而成
不能使用类别名称搜索类别。你可以使用slug。请注意差异。slug规范化为小写,空格替换为破折号。“Foo A”的首字母应该是“Foo-A”。使用“Foo A”将不起作用。
$admin_cat = get_option(\'admin_cat\');
if (ctype_digit("$admin_cat")) { // this is an ID
$qry = array(\'cat\' => (int)$admin_cat);
} else {
$qry = array(\'category_name\' => $admin_cat);
}
$my_query = new WP_Query($qry);
如对您的问题的评论所述,请勿使用
query_posts
.
应该注意的是,使用此replace the main query 在页面上可以increase page loading times, 在最坏的情况下more than
doubling the amount of work needed or more. 虽然易于使用,但该功能prone to confusion and problems 过后有关详细信息,请参阅下面关于注意事项的注释。
http://codex.wordpress.org/Function_Reference/query_posts (重点矿山)