如何将某些小工具排除在主页/首页上?

时间:2016-05-15 作者:KDX

如果不使用插件,如何防止/排除侧栏小部件“最近的帖子”出现在主页/首页上?

我确实希望它显示在其他存档/发布页面的侧栏上。

1 个回复
SO网友:KDX

我在这里找到了问题的确切答案:

https://wordpress.stackexchange.com/a/17687/92505

下面是经过一些修改后我使用的代码,以使其适用于我的情况。

将以下代码添加到functions.php 哪里\'sidebar-1\' 是您的边栏ID。

\'recent-posts\' 是您想要隐藏的小部件的名称。

12 是字符串的长度\'recent-posts\'

希望有人会觉得它有用。

add_filter( \'sidebars_widgets\', \'wpse17681_sidebars_widgets\' );
function wpse17681_sidebars_widgets( $sidebars_widgets )
{
    if ( is_home() || is_front_page() /* Or whatever */ ) {
        foreach ( $sidebars_widgets as $sidebar_id => &$widgets ) {
            if ( \'sidebar-1\' != $sidebar_id ) {
                continue;
            }
            foreach ( $widgets as $idx => $widget_id ) {
                // There might be a better way to check the widget name
                if ( 0 === strncmp( $widget_id, \'recent-posts\', 12 ) ) {
                    unset( $widgets[$idx] );
                }
            }
        }
    }

    return $sidebars_widgets;
}

相关推荐

绕过WP查询中的“supress_Filters”

显然,出于某种不合逻辑的原因,开发人员决定获取所有语言帖子的唯一方法是添加supress_filters=true 到WP\\u查询(而不是像这样language_code=all 选项)。无论如何,我的情况是,我需要获取所有语言的帖子,但也需要使用过滤器修改WP\\u查询。有没有办法强制将我的过滤器添加到查询中,即使supress_filters 设置为false?这是我需要添加的过滤器:add_filter( \'posts_where\', function($where, $wp_query) {