在快捷代码中添加Wordpress功能


Adding Wordpress function into shortcode

我有一个短代码[table id=table /]

我想做一些类似<?php echo do_shortcode('[table id="'.$post->post_name.'"/]'); ?> 的事情

我希望鼻涕虫显示为表id。

我做错了什么?

鉴于您在评论中提到,您正试图在小部件中使用此短代码,小部件默认不会解析短代码。

要使大多数小部件解析短代码(大多数是那些具有应用widget_text过滤器的文本字段的小部件),您可以将以下内容添加到主题的函数中。hp:

add_filter("widget_text", "do_shortcode");

然后,你可以在你的小部件文本中直接引用这个快捷代码,就像你期望的那样:

[table id=... /]

编辑:

如果你在运行自己行上的短代码时遇到任何问题,那可能是因为它们被Wordpress自动包装在<p></p>标签中。要阻止这种情况的发生,请在上面添加的过滤器之前添加此过滤器:

add_filter("widget_text", "shortcode_unautop");

shortcode_unautop()函数只是阻止shortcode被包裹在段落标记中,就像Wordpress在大多数文本字段中的默认行为一样。