如果不使用插件,如何防止/排除侧栏小部件“最近的帖子”出现在主页/首页上?
我确实希望它显示在其他存档/发布页面的侧栏上。
如果不使用插件,如何防止/排除侧栏小部件“最近的帖子”出现在主页/首页上?
我确实希望它显示在其他存档/发布页面的侧栏上。
我在这里找到了问题的确切答案:
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;
}
显然,出于某种不合逻辑的原因,开发人员决定获取所有语言帖子的唯一方法是添加supress_filters=true 到WP\\u查询(而不是像这样language_code=all 选项)。无论如何,我的情况是,我需要获取所有语言的帖子,但也需要使用过滤器修改WP\\u查询。有没有办法强制将我的过滤器添加到查询中,即使supress_filters 设置为false?这是我需要添加的过滤器:add_filter( \'posts_where\', function($where, $wp_query) {