如何从派生的进程中使用STRING_SHORTCODES()?

时间:2019-03-28 作者:togethernet

我有一个插件,它生成一个进程来执行打印功能。要打印的项目(在本例中为Woocommerce产品)通过URL传递(通过product_id). 在进行打印之前,必须从产品描述中删除所有注册的短代码。如果我打电话strip_shortcodes() 它什么都不做。我猜注册的短代码数组超出了范围?是否有人能提出一种有效的方法,使流程能够使用strip_shortcodes()?

2 个回复
SO网友:mrben522

您可以手动将短代码添加到要剥离的标记数组中strip_shortcodes() 通过过滤器。如果全球$shortcode_tags 要么不存在,要么不包含流程运行时应该包含的内容,然后需要使用该过滤器将其添加回。

$tags_to_remove = apply_filters( \'strip_shortcodes_tagnames\', $tags_to_remove, $content );

SO网友:togethernet

我需要带上$shortcode_tags 调用前进入范围strip_shortcodes()

我通过添加声明来做到这一点

global $shortcode_tags;

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗