我正在做一个主题的除虫工作,我希望有人能帮助我。
我使用JustinTadlock创建的这个函数在博客页面上显示自定义帖子类型,并且将wp debug设置为true,我会收到一个通知:未定义索引:suppress\\u filters消息。
代码如下:
// Custom Post Type for the public blog posts to show on Index or blog page
add_filter( \'pre_get_posts\', \'my_get_posts\' );
function my_get_posts( $query ) {
if ( ( is_home() && false == $query->query_vars[\'suppress_filters\'] ) || is_feed() )
$query->set( \'post_type\', array( \'news\', \'attachment\' ) );
return $query;
}
如果有人能帮忙,那就太好了。谢谢
最合适的回答,由SO网友:s_ha_dum 整理而成
如果$query->query_vars[\'suppress_filters\']
未设置,您将收到该消息。
使用empty($query->query_vars[\'suppress_filters\'])
而不是false == $query->query_vars[\'suppress_filters\'] )
或使用$query->get(\'suppress_filters\')
像这样false == $query->get(\'suppress_filters\')
.
未经测试(最低限度测试),但我相信这两种方法中的任何一种都会给你相同的结果,减去通知。
SO网友:Pat J
听起来像$query->query_vars[\'suppress_filters\']
未设置。尝试以下操作:
// Custom Post Type for the public blog posts to show on Index or blog page
add_filter( \'pre_get_posts\', \'my_get_posts\' );
function my_get_posts( $query ) {
if (
( is_home() && (
isset( $query->query_vars[\'suppress_filters\'] ) &&
false == $query->query_vars[\'suppress_filters\']
)
) ||
is_feed()
) {
$query->set( \'post_type\', array( \'news\', \'attachment\' ) );
}
return $query;
}
我加了一张支票
$query->query_vars[\'suppress_filters\']
在检查是否
false
. (我还打破了
if()
语句以便于阅读。(我想我已经匹配了所有
(
和
)
正确。)