您的代码失败,因为:
array(
\'cat\' => -9, -4
);
与以下内容相同:
array(
\'cat\' => -9,
-4
);
-4是它自己的元素,而不是“cat”参数的一部分。
正确的方法是:
array (
\'cat\' => array( -9, -4 )
);
但这也会失败,因为“cat”采用的是单个值,而不是它们的集合/数组/列表,并且它不是要传递的正确参数:
http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters
- 类别(int)-使用类别id。
- 类别名称(字符串)-使用类别slug(非名称)
- category\\uu和(array)-使用类别id。
- category\\uu in(array)-使用类别id。
- category\\uu not\\u in(array)-使用类别id。
function filter_cats_on_home( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( \'category__in\', array( -1,-1347) );
}
}
add_filter( \'pre_get_posts\', \'filter_cats_on_home\' );
这比
query_posts
在主页上。
但更令人担忧的是
\'cat\' => -9,
我看到了硬编码的值。这不是便携式的。相反,请执行以下操作:
将术语/类别ID存储在选项或post meta中,并提供某种用户界面,通过post slug引用类别,以便导出和导入内容或网站移动不会破坏一切