Namespaced shortcode?

时间:2018-05-04 作者:fabrik

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。

当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。

根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?

[com.company shortcode attr="attr" prop="prop"]
有人尝试过这样的解决方案吗?有什么缺点吗(除了命名空间带来的开销)?

1 个回复
SO网友:cjbj

不幸的是,这不是短代码的工作方式。您的解决方案不会减少性能问题。

在初始化时,WordPress唯一要做的就是列出所有正在注册的短代码。如果你看看order in which WordPress is loading stuff 您将看到插件加载在主题和init挂钩之前。这意味着,如果您尝试在一个插件中执行WP当时不期望的操作,则不会发生任何事情。

其中之一就是添加短代码。因此,在插件中,必须将添加短代码的时间推迟到init挂钩。这就是你所指的例子的含义。这与性能无关。仅注册一个短代码就不会导致服务器上的负载。

WP只有在帖子中遇到一个短代码时才开始使用它。这时,编写效率低下的代码将付出代价。减少这种情况的唯一方法是重写(或删除)。您可以使用如下插件T&P profiler 确定哪些功能占用了最多的服务器时间(披露:我写了那个插件,是的,它仍然可以工作,即使它已经有一段时间没有更新了)。

结束

相关推荐

Shortcode insertion in tab

我创建了一个插件,该插件使用来自帖子类型的自定义类别的短代码显示员工。例如[董事会成员术语=“team1”]它工作正常,但只在页面或帖子上。当我将短代码粘贴到选项卡中(使用JustinTadlock的whistles)时,配置文件显示在选项卡外部,页面主体中选项卡的上方。我该怎么做才能让它显示在选项卡中?这是代码。。。require_once(dirname(__FILE__).\'/post-type.php\'); //file that registers CPT function