注意:未定义索引:SUPPRESS_FILTERS

时间:2013-06-06 作者:Chris

我正在做一个主题的除虫工作,我希望有人能帮助我。

我使用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;
}
如果有人能帮忙,那就太好了。谢谢

2 个回复
最合适的回答,由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() 语句以便于阅读。(我想我已经匹配了所有() 正确。)

结束

相关推荐

Number of displayed posts

我已经尝试了很多方法来解决这个问题。所以我有一个插件,它在一个小部件中显示分配给用户的项目。它将项目显示为帖子。问题是它只显示5 页面上的项目。我正在发送一个显示帖子的代码:$projects = get_posts(array(\'post_type\' => \'projects\')); 有个人叫我把它改成$projects = get_posts(array(\'post_type\' => \'projects\', \'number posts\' => 10));