在WordPress中,functions.php就像是站点的一个插件,它随着当前主题一起自动激活。主题作者一般会将主题的自定义函数添加到functions.php文件中,所以我们也可以向里面添加额外的程序代码或自定义函数、简码等。
第一点:什么是functions.php
wordpress主题可能会在主题的functions.php文件中添加一些代码,以便自定义一些功能或添加一些功能,那么只要你有functions.php文件的编辑权限,同样可以添加自己的程序代码。
原则上只要是PHP代码,都可在functions.php中执行,但最好的符合WordPress编码规范,因为它和插件的原理是一样的,或者它里面所有的程序集就是一个自动激活并运行的插件!
以下几条要点必须牢记
- 在 WordPress 网站上激活主题时,functions.php 文件会自动加载。里面的程序代码都会随 WordPress 一起运行。
- 如果里面的程序代码有错误或执行效率低,会影响WordPress的正常运行。
- 函数、变量或类的名称不能与WordPress核心程序或其它插件冲突。
第二点:functions.php文件在哪里?
functions.php 文件的位置在当前激活的主题文件夹中,如果当前激活的主题是“GeneratePress”主题,则WordPress会自动加载/wp-content/themes/generatepress/functions.php
文件。
网上有许多 WordPress 教程会告诉你将代码片段添加到主题的 functions.php 文件中,但这不是一个好主意。
将代码片段添加到 functions.php 的最佳方法,本文尾部会介绍。
如果确定要编辑 functions.php 文件,请格外小心。
不建议直接编辑functions.php文件的3个原因
- 更新主题时,functions.php文件中的编辑的内容会丢失。
- 如果更换 WordPress 主题,functions.php文件中的代码也会丢失。
- 如果编辑或添加的代码错误,可能会导致WordPress崩溃而无法登录后台,哪怕仅仅是缺少一个
;
符号
第三点:将自定义代码片段添加到functions.php的最佳替代方法
有两个值得推荐的插件,可以完全替代编辑 functions.php 文件,自由添加在WordPress网站上运行代码片段。
推荐:Code Snippets、WPCode 这两款插件,它们都是免费的,其中 Code Snippets 比较简洁,而 WPCode 功能更多,如果仅需要替代编辑 functions.php 文件更推荐前者,假设有很多的自定义代码需要添加到WordPress,则推荐使用WPCode。
在 Code Snippets 中,只需要新建一个代码片段,将PHP程序粘贴到里面,保存并激活,就和编辑 functions.php 文件添加代码的作用是一样的。
使用插件有以下几个好处
- 不论是更换主题还是升级主题,不用担心自定义代码丢失。
- 不用担心PHP语法错误而导致WordPress错误,因为插件会自动检查语法,如有错误无法保存修改。
- 插件可以将不同的代码分成不同的片段,这样便于管理和调试。