通常WP不允许html标记<>
输入,但允许“[
“&;”]
“。所以一个简单的解决方法是将say say“This is[b]bold[/b]”转换为“This isbold“。
在您自己的小部件中you don\'t even need to use add_filter
; 类似于:
$title = str_replace( array("[b]","[/b]"), array("<b>","</b>"), apply_filters(\'widget_title\', $title));
(然后,像往常一样,稍后通过回显$title来呈现小部件标题)
should do the trick.
您的问题涉及add_filter
; 如果需要使用此功能,则此功能很简单,可以轻松地扩展到其他HTML标记:
function bold_widget_title( $title) {
$title = str_ireplace( array(\'[b]\',\'[/b]\') , array(\'<b>\',\'</b>\'), $title);
return $title;
}
add_filter( \'widget_title\', \'bold_widget_title\' );
// the arrays can be extended for other tags e.g "<br>" to allow you to choose where a long title is split to a new line.
允许用户输入实际的HTML标记是可能的,但事后看来,我不建议这样做。在一个小部件中,我允许用户同时输入
<br>
标签和[br]但是如何做到这一点对于小部件来说是非常具体的。
关于如何操作的一些提示:
告诉WP允许<b>
用户标题输入中的标记,例如。
$instance[\'title\'] = wp_kses($new_instance[\'title\'], array(\'b\'=>array() ), array() );
为避免滤清器拆卸:更换
<b>
s和
</b>
s与
[]
保存前的版本
准备好渲染,例如。
$title = str_replace ( array("[b]","[/b]") , array("<b>","</b>") , apply_filters(\'widget_title\', str_ireplace(array("[b]","[/b]"), array("<b>","</b>"),$title)));