我有一个短代码,可以从URL获取参数并进行进一步处理。我有另一个短代码,也需要相同类型的URL参数处理。我想与两个函数共享URL参数处理代码。如何在短代码中完成?
这似乎是一个伪造的例子,但它并不完整: http://www.sitepoint.com/wordpress-nested-shortcodes/。他似乎在页面中做嵌套的短代码语法。我宁愿在PHP中保持嵌套,因为使用短代码语法在页面中进行嵌套没有多大优势。
答案 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的方式。您链接的示例是。