gpt4 book ai didi

wordpress - 如何在 Wordpress 的小部件描述中添加换行符?

转载 作者:行者123 更新时间:2023-12-02 03:52:21 29 4
gpt4 key购买 nike

我想在 Wordpress 的小部件描述中添加换行符以在管理面板中显示使用说明,如下所示:

To format the text use the tags:
<h3>Subtitle</h3>
<strong>Bold</strong>
[:pt]Text in Portuguese
[:en]Text in English
[:es]Text in Spanish

目前的想法是使用 ISO 8859-1 符号 ( ) 添加空格,这不是最佳解决方案(描述为葡萄牙语):

register_sidebar( array(
'name' => 'Widget',
'id' => 'widget-user',
'description' => "Para formatar o texto, utilize as tags: <h3>Subtítulo laranja</h3> &nbsp; <strong>Negrito</strong> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#91;:pt]Texto em português nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#91;:en]Texto em inglês &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#91;:es]Texto em espanhol &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (o que estiver escrito fora das tags de idioma irão aparecer para todos",
'before_widget' => '<div class="widget-user"><div class="box">',
'after_widget' => '</div></div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
));

与'before_widget'、'after_widget'、'before_title' 和'after_title' 不同,'description' 不接受HTML。如果是这样,只需转义 HTML 即可轻松解决我不想使用 htmlspecialchars() 之类的 php 函数转换为 HTML。

我拼命尝试过这些都没有成功:

"description" => "This is a line <br> break test"    
"description" => "This is a line \n break test"
"description" => "This is a line \r break test"
"description" => "This is a line \r\n break test"
"description" => htmlspecialchars("This is a line <br>break test")
htmlspecialchars("description") => "This is a line <br>break test"
"description" => htmlentities("This is a line <br>break test")
"description" => html_entity_decode("This is a line <br>break test")
"description" => nl2br("This is a line <br> break test")
nl2br("description") => nl2br("This is a line <br> break test")

那么,有什么想法吗?

最佳答案

从您的问题来看,您似乎对小部件和侧边栏有点混淆——或者从您使用这两个术语的方式来看可能只是这样。如果我向您重申显而易见的事情,我深表歉意。

侧边栏 是您网站上可以显示小部件的动态部分。 小部件 是显示在一个或多个侧边栏中的单个项目。您引用的函数 register_sidebar() 用于创建侧边栏区域——设置中的这些 block 之一——> 外观菜单,您可以将小部件拖动到该区域。描述字段仅用于指示基本信息。关于使用该特定侧边栏的位置。例如,如果您注册了一个您计划在页眉中使用的侧边栏,则描述可能类似于“出现在导航菜单上方的页眉中”。

小部件也有提供信息的描述。关于如何填写他们的各种选项。这听起来像你想要做的。所以问题是您要使用什么小部件?您可以在小部件代码中设置您正在谈论的描述。

就侧边栏描述而言,Wordpress 使用函数wp_sidebar_description($id) 输出每个侧边栏的描述。该函数通过另一个 Wordpress 函数 esc_html() 运行描述文本,该函数通过几次检查运行它并删除任何可能有问题的内容。

虽然您有机会更改默认输出。它所做的最后一件事是对文本应用过滤器 esc_html。所以如果你想制作 <br>实际上用作换行符,您可以简单地在主题的 functions.php 文件中添加一个过滤器来恢复该功能,如下所示:

add_filter('esc_html', 'newLines');
function newLines($desc){
return htmlspecialchars_decode($desc);
}

这基本上会撤消 Wordpress 正在执行的操作,并按照您的预期输出任何 HTML 代码(粗体、斜体等)。

应该在原始响应中注意到,上述过滤器将影响 esc_html() 函数在您网站上使用它的所有地方——您可能不希望这样!

不幸的是,没有任何钩子(Hook)或过滤器可以让您针对特定的侧边栏,但您可以使用以下方法将上面的过滤器限制为仅在管理页面上发生:

function newLines($desc){
global $pagenow;
global $wp_registered_sidebars;
if($pagenow == 'widgets.php'){
return htmlspecialchars_decode($desc);
}
}
add_filter('esc_html', 'newLines');

关于wordpress - 如何在 Wordpress 的小部件描述中添加换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897029/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com