如何做嵌套的短代码?

时间:2013-03-27 14:37:50

标签: php wordpress

我有一个短代码,可以从URL获取参数并进行进一步处理。我有另一个短代码,也需要相同类型的URL参数处理。我想与两个函数共享URL参数处理代码。如何在短代码中完成?

这似乎是一个伪造的例子,但它并不完整: http://www.sitepoint.com/wordpress-nested-shortcodes/。他似乎在页面中做嵌套的短代码语法。我宁愿在PHP中保持嵌套,因为使用短代码语法在页面中进行嵌套没有多大优势。

1 个答案:

答案 0 :(得分:3)

您可以从另一个短代码的PHP中调用PHP代码中的一个短代码。

因此,例如,将传递到您的短代码中的URL,执行特定于该短代码的所需处理,然后根据需要调用/使用其他短代码背后的函数。

您的短代码PHP的功能可用于所有其他PHP代码(包括任何其他短代码),就像您的functions.php文件中的其他函数一样。

您可以通过WP短代码API do_shortcode()函数从PHP中模拟短代码嵌套,并将一些“内容”传递给它,例如"[yourshortcode your_attr='your value' ... ]some content[/yourshortcode]"。通过这种方式,您可以确保正在执行yourshortcode,就像它实际包含在内容中一样。

或者,如果是两个人都使用的一个短代码的某些特定函数的情况,那么这些函数应该放在一个共享文件中,例如functions.php?

但是如果短代码不是同一插件或主题的一部分,那么您可能还需要查看is_plugin_active(),这将允许您编写代码,以便您的从属短代码可以优雅地处理缺少依赖性。

但是请注意,这些都不是真正的“短代码嵌套”,至少在WP codex定义它here的方式。您链接的示例是。