我在我的主题中的所有小部件中添加了一个自定义字段,称为“自定义标题”。我已成功将每个小部件的字段保存到数据库中,如下所示:
s:12:"custom-title";s:17:"HELLO TEST ANCHOR"
我想用它在before\\u widget参数上为每个小部件的标记添加一个数据属性“custom title”。我希望最终分数如下所示:
<div id="widget-id" class="widget classes" data-custom-title="HELLO TEST ANCHOR">
我想用
register_sidebar()
因此,它适用于保存了自定义标题的所有小部件。
以下是传递给register\\u提要栏的当前参数:
// Register Sidebar
register_sidebar(
Array(
\'id\' => $sidebar_id,
\'name\' => $arr_sidebar[0],
\'description\' => $arr_sidebar[1],
\'before_widget\' => \'<div id="%1$s" class="widget %2$s" data-custom-title="">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h2>\',
\'after_title\' => \'</h2>\'
)
);
是否可以将我的自定义标题插入此标记中的正确位置?
SO网友:Chinmoy Kumar Paul
首先,您将替换此行<div id="%1$s" class="widget %2$s" data-custom-title="">
具有<div id="%1$s" class="widget %2$s" data-custom-title="DCT">
现在在函数中添加过滤器。php文件。
add_filter( \'widget_display_callback\', \'add_custom_data_to_before_widget\', 10, 3 );
function add_custom_data_to_before_widget( $instance, $widget_class, $args ) {
if ( ! empty( $instance[\'title\'] ) && ! empty( $instance[\'custom-title\'] )) {
$args[\'before_widget\'] = str_replace(\'DCT\', sanitize_text_field ( $instance[\'custom-title\'] ), $args[\'before_widget\']);
$widget_class->widget( $args, $instance );
return false;
}
}
希望这对你有帮助。