自定义字幕小工具/HTML编码

时间:2014-03-04 作者:Tim Gallant

我不是第一个为WordPress从小部件标题中剥离HTML而斗争的人。有许多自定义小部件允许您添加标题链接,但我特别希望能够添加br和span标记。

我偶然发现了这个教程:http://ponderwell.net/2011/05/how-to-use-html-in-wordpresss-widgets-title/ 它告诉您如何基于本机WP默认小部件创建自定义小部件文件。php。

这让我几乎做到了这一点,但无论是直接使用他的方法,还是修改它来定制现有的小部件(增强的文本小部件),我都得到了<;br>;和(<);跨度(>);而不是正确的HTML编码。我看到评论中有人提到了html\\u entity\\u decode(),并尝试了一些方法,但老实说,我对PHP的了解还不足以让它正常工作。

如果我必须在函数中执行此操作。php加上一个自定义的\\u小部件。php文件,我会让它工作,但为了可移植性,我更愿意作为一个小部件插件来完成这项任务。

既然我已经走了这么远,我需要什么来正确编码这些标签呢?我确实在这里找到了Chris提供的解决方案:Unfiltered html in widget title not working, 但很明显,我没有把代码放在正确的地方。(我确实在functions.php中使用了Amy自己的解决方案,但不确定这是否是一种很好的方法……)

TIA。

1 个回复
SO网友:Shazzad

正如您所知,html标记在小部件标题上不起作用。但有办法使用它。我所知道的最好的方法是在标题中使用短代码。因此,对于使用br和span,以下是一个解决方案-

add_filter(\'widget_title\', \'do_shortcode\');

add_shortcode(\'br\', \'wpse_shortcode_br\');
function wpse_shortcode_br( $attr ){ return \'<br />\'; }

add_shortcode(\'span\', \'wpse_shortcode_span\');
function wpse_shortcode_span( $attr, $content ){ return \'<span>\'. $content . \'</span>\'; }

add_shortcode(\'anchor\', \'wpse_shortcode_anchor\');
function wpse_shortcode_anchor( $attr, $content ){ 
    return \'<a href="\'. ( isset($attr[\'url\']) ? $attr[\'url\'] : \'\' ) .\'">\'. $content . \'</a>\'; 
}
您只需将这些行放到functions.php 文件

用法:

就像在帖子内容上使用快捷码一样,在小部件标题上使用它
[br]
[span]something[/span]
[anchor url="http://domain.com/"]something[/anchor]

一个问题是,大多数小部件在小部件标题上使用过滤器widget_title, 但是一些自定义小部件可能不会应用或使用此挂钩。所以,在这些小部件上,这个方法不起作用,我想其他方法也不起作用。

结束