从另一个简码访问包装Wordpress简码内容

时间:2019-02-20 19:45:49

标签: php wordpress

我有两个插件。使用的核心插件可提供商店信息,而库存插件可从数据库中任何给定的商店检索库存。

核心插件有一个名为store的短代码,可以在特定商店的ID中传递,也可以在默认代码中通过默认存储ID传递。

我想做的就是使用商店简码作为包装简码,将其内容传递给另一个简码。

类似这样

[store store_id = "some store id"]
    [inventory]
[/store]

库存简码中使用的功能是否可以访问包装商店简码返回的数据?

1 个答案:

答案 0 :(得分:0)

最简单的选择是将父标签的商店ID传递给嵌套标签,并在库存中执行所需的操作,这取决于商店。

因此,基于对这篇文章(https://www.sitepoint.com/wordpress-nested-shortcodes/)的良好阅读,我建议采用这样的解决方案:

具有ID的示例 您为库存标签添加了一个可选参数-store_id,并将其在内容中设置为例如{store_id}。

在商店短代码/插件中,您将用当前商店ID替换{store_id},并使用do_shortcode()评估短代码内容。 (因此,您可以实现自己的短代码:))

帖子内容中

[store store_id = "some store id"]
    [inventory store_id={store_id}]
[/store]

在商店插件/简码中:

$content = str_replace($content, '{store_id}', $myCurrentStoreId);
return do_shortcode($content);

回答您的问题 是的,只要短代码语法支持作为参数传递的数据,您可以使用本文提供的解决方案发送包装短代码中的任何内容。我怀疑短代码的参数确实适用于短字符串和ID(以防您要在其中发送较长的html页面)。

WP文档-do_shortcode: https://developer.wordpress.org/reference/functions/do_shortcode/