WordPress快捷码与性能

时间:2016-06-03 作者:Riccardo

短代码是否会影响性能?每个使用这种技术的插件都必须解析帖子/页面内容,寻找短代码?如果是这样的话,那么最好限制尽可能多的基于短代码的插件?

3 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

你需要从几个角度来看待这一点,然后你必须权衡彼此之间的可能性

一般来说,短代码会比较慢(我们这里说的是毫秒),因为它们需要由短代码处理程序进行解析和处理。

用法:[my_shortcode] 在post editor中,短代码通常非常有用,通常比硬编码一个函数并在所需模板中调用它要慢得多。短代码是可移植的(这就是为什么它们should be 在一个插件中,这使得它们在主题之间的使用非常好。更重要的是,您不需要为了在模板中做一些特殊的事情而修改任何模板,您只需将短代码放到post editor的内容元框中,就可以完成。

为了方便和易于使用,这里肯定要使用短代码,这里所有的优点都超过了由于不单独使用意大利面回调函数而在短短几毫秒内造成的损失

用法:do_shortcode() 在模板中硬编码,如果您需要通过do_shortcode(), 那么你做错了。正如我所说,短代码要慢一点,所以在这里最好只编写一个简单的函数,将其放入插件中(,这是推荐的可移植性)或functions.php, 然后将函数调用到模板中。

无论哪种方式,您都必须更改模板,以调用您的短代码或您创建的函数甚至类。这就是为什么,IMHO,您不应该使用短代码,而应该使用一个简单的函数或一个更快的类。

结论:您应该远离或限制短代码的使用吗?答案很简单,这完全取决于如上所述的用法。最后一点,如果您要在一个页面中调用多个短代码,请尝试通过将您需要的功能组合到一个可靠、聪明的短代码中来限制这些短代码,该短代码可以完成您想要的一切。

在我放下笔之前,我想留给你这个,下载并安装Query Monitor 插件。我个人觉得每个开发人员都应该在他/她的本地测试环境中安装这个插件。该插件将告诉您进行了多少查询,进行这些查询所需的时间,还将告诉您加载特定页面所需的时间。

SO网友:Mark Kaplun

这有几个方面,和往常一样,性能是必须在上下文中考虑的。Pieter的回答给了你一个答案——“你有没有更好的方法来实现所需的功能?”。除此之外,还有一些事实值得记住

现代PHP速度很快。编写效率低下的代码从来都不是一件好事,但可能不值得浪费太多时间来优化PHP的内部工作(例如单引号与双引号)

  • 使用正则表达式来检测和解析短代码的耗时部分并不总是解析文本本身,而是生成内部“解析机器”,该机器用于文本分析。PHP通过缓存机器来帮助实现这一点

  • SO网友:Dmitry Ivanov

    如果您没有调用短代码,这意味着它们没有调用其功能,因此不会影响网站的性能。

    您还可以使用静态类和变量来减少站点的负载。每个短代码将只使用函数一次,独立于您调用它的次数。

    相关推荐

    致命错误:未捕获错误:无法将WP_ERROR类型的对象用作/../plugins/rm-payment.php中的数组

    我使用2个WordPress站点、1个WordPress站点到2个WordPress站点的远程支付系统。第一个是主网站;第二个网站的工作方式类似于处理贝宝支付的商户网站。我们将第一个网站的用户订单详细信息提取到第二个网站,以处理贝宝付款。但在获取第二个网站的网页时出现错误,但请记住,如果重新加载它一次,问题就解决了致命错误:未捕获错误:无法将WP\\u error类型的对象用作/中的数组/插件/rm支付。php:第231行 $response = wp_remote_post( $remote_url,