将Wordpress功能添加到短代码中

时间:2016-05-16 21:46:50

标签: php wordpress shortcode

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

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

我希望slug显示为表id。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

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

add_filter("widget_text", "do_shortcode");

然后,您可以直接在您的小部件文本中引用此短代码,就像您期望的那样:

[table id=... /]

修改

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

add_filter("widget_text", "shortcode_unautop");

shortcode_unautop()函数只是阻止短代码被包装在段落标记中,如Wordpress&#39;大多数文本字段中的默认行为。