钩子文档

sidebars_widgets

💡 云策文档标注

概述

sidebars_widgets 是一个 WordPress 过滤器,用于修改侧边栏及其小部件的列表。它允许开发者在运行时动态调整侧边栏中的小部件配置。

关键要点

  • 过滤器名称:sidebars_widgets
  • 参数:$sidebars_widgets,一个关联数组,包含侧边栏及其小部件实例 ID 的列表
  • 用途:过滤或修改侧边栏的小部件列表,例如基于页面条件隐藏特定小部件
  • 相关函数:wp_get_sidebars_widgets() 用于检索侧边栏和小部件实例 ID 的完整列表
  • 引入版本:WordPress 2.7.0

代码示例

add_filter( 'sidebars_widgets', 'wpdocs_remove_about_me_widget' );
function wpdocs_remove_about_me_widget( $sidebars_widgets ) {
    if ( is_admin() ) { 
        return $sidebars_widgets; 
    }
    
    if ( is_page( 'about' ) || is_home() ) {
        $key = array_search( 'text-3', $sidebars_widgets['primary-sidebar'] );

        if ( false !== $key ) {
            unset( $sidebars_widgets['primary-sidebar'][ $key ] );
        }
    }

    return $sidebars_widgets;
}

注意事项

在管理界面(is_admin())中应避免修改,以确保后台操作正常。示例中展示了如何基于页面条件(如 is_page('about') 或 is_home())移除特定小部件(如 'text-3')。


📄 原文内容

Filters the list of sidebars and their widgets.

Parameters

$sidebars_widgetsarray
An associative array of sidebars and their widgets.

Source

return apply_filters( 'sidebars_widgets', $sidebars_widgets );

Changelog

Version Description
2.7.0 Introduced.

User Contributed Notes

  1. Skip to note 2 content

    Hide Widgets on Specific WordPress Pages

    add_filter( 'sidebars_widgets', 'wpdocs_remove_about_me_widget' );
    function wpdocs_remove_about_me_widget( $sidebars_widgets ) {
        if ( is_admin() ) { 
            return $sidebars_widgets; 
        }
        
        if ( is_page( 'about' ) || is_home() ) {
            $key = array_search( 'text-3', $sidebars_widgets['primary-sidebar'] );
    
            if ( false !== $key ) {
                unset( $sidebars_widgets['primary-sidebar'][ $key ] );
            }
        }
    
        return $sidebars_widgets;
    }