h2
和h3
不是html类,而是html tags.
也就是说,不存在小部件的默认html标记,因为用于输出小部件标题的格式已设置when the sidebar is registered (查看“before\\u title”参数)。
所以标题是如何显示的theme related and sidebar related, 不依赖于小部件。
更改主题用于小部件标题的html标记的简单方法是使用\'dynamic_sidebar_before\'
钩子(在显示侧边栏之前激发)和全局$wp_registered_sidebars
变量来更改显示的边栏上的“before\\u title”参数,这是由于钩子传递了边栏id:
add_action( \'dynamic_sidebar_before\', \'widget_title_h2_h3\' );
function widget_title_h2_h3( $sidebar_id ) {
global $wp_registered_sidebars;
if ( isset( $wp_registered_sidebars[$sidebar_id] ) ) {
if ( isset($wp_registered_sidebars[$sidebar_id][\'before_title\']) ) {
$now = $wp_registered_sidebars[$sidebar_id][\'before_title\'];
$h3 = str_ireplace( \'<h2\', \'<h3\', $now );
$wp_registered_sidebars[$sidebar_id][\'before_title\'] = $h3;
}
}
}
但是,这会将所有侧栏中的h2更改为h3(至少是小部件标题中有h2的所有侧栏)。
要将代码应用于特定侧栏,请在外部中添加条件if
应该是这样的:
if ( $sidebar_id === \'sidebar-id\' && isset( $wp_registered_sidebars[$sidebar_id] ) ) {