什么时候才适合把函数放在页面模板上,而不是放在函数.php上?

时间:2014-01-03 作者:Tom Geoco

我想改进我的代码,在当前主题上,我用自定义帖子类型、元数据、自定义用户身份验证和许多其他项目扩展了Wordpress。

其中一些函数存在于函数中。php文件,而我将其他文件直接放在它们相关的模板文件上。起初,我没有什么理由这么做,只是看起来很合适,因为所说的模板文件是唯一使用特定功能的文件。

但我想知道,为了速度和安全起见,什么是最佳做法?你是做什么的?

2 个回复
最合适的回答,由SO网友:grappler 整理而成

如果这是一个为你的网站定制的主题,那么移动功能将不会有很大的速度或安全改进。

另一方面,如果您想发布主题,那么我建议在页面模板文件中只使用最小的php,并将其余函数组织在不同的文件中。我喜欢基本的主题设置文件的主题要在功能。php和其他文件位于单独的组织文件中。_s 这方面做得很好。将函数从模板文件中移出的原因是,这样可以更容易地进行自定义和管理。如果需要复制模板,则最终不会复制功能。

我甚至会将非表示性功能放在插件中,以便于停用和管理。看见this answer 了解更多信息。

SO网友:Brad Dalton

显然,如果更新父主题,任何模板更改都将丢失。

原因是最好使用子主题函数。php文件是这样,当您更新父主题时,您的自定义编码是安全的。

您不应修改父主题中的任何文件,而应始终使用子主题或创建可添加自定义编码的插件。

使用特定于WordPress/主题的过滤器修改现有父主题和WordPress函数的输出是最佳实践。

您还可以使用特定主题/WordPress操作挂钩,通过子主题功能文件添加更多功能和内容。

最重要的是,您可以简单地将模板添加到子主题,或者从父主题复制模板,然后在子主题中对其进行更改。实际上,这意味着用户不完全了解如何使用挂钩和过滤器,也不知道如何寻找简单的解决方案。

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。