有时候我会找到一些解决 WordPress 问题的教程,而这些教程常常要求我直接修改 functions.php 或其他源文件。
我想知道有没有一种更干净的方法,可以把这些小段代码变成类似插件的东西。事实上,确实有一个简单办法:安装 Code Snippets 插件,把自定义代码放在那里,而不是编辑主题文件。
为什么不要直接编辑 functions.php?
编辑 functions.php 可以生效,但它有一些缺点:
- 如果你切换主题,代码会随着旧主题一起消失。
- 如果主题更新,粗心的改动可能会被覆盖。
- 一个语法错误就可能让网站崩掉,并导致后台难以访问。
- 很难记住哪些改动来自教程,哪些本来属于主题。
对于小型自定义修改,使用代码片段插件通常更安全,也更容易管理。
安装 Code Snippets
在 WordPress 仪表盘中:
- 进入 Plugins -> Add New。
- 搜索 Code Snippets。
- 安装并启用该插件。
- 进入 Snippets -> Add New。
- 给代码片段起一个清晰的标题。
- 粘贴教程中的 PHP 代码。
- 保存并启用它。
代码片段通常可以包含教程要求你添加到 functions.php 中的同一段 PHP 代码。除非插件明确要求,否则不要包含开头的 <?php 标签。
示例
例如,如果某个教程说要把下面这行添加到 functions.php:
add_filter('the_generator', '__return_empty_string');
你可以新建一个名为类似 Remove WordPress generator meta tag 的代码片段,把这一行粘贴到代码片段编辑器中,保存并启用它。
实用建议
在启用代码片段之前,检查代码是否完整,并确认它复制自可靠来源。如果代码片段会改变前台行为,请在私密浏览器窗口中测试。如果它会改变后台行为,请确保你仍然知道如何通过 FTP、主机文件管理器或 WP-CLI 禁用该插件,以防代码导致错误。
最好也把每一项自定义修改放在各自独立的代码片段中。例如,登录页面改动用一个片段,编辑器改动用一个片段,WooCommerce 改动再用一个片段。这样一来,如果出现问题,就更容易只禁用造成问题的那一部分。
什么时候应该改用真正的插件
Code Snippets 适合小型修改、过滤器、动作以及简单的辅助函数。如果自定义功能变得很大,需要自己的设置页面,会添加数据库表,或者属于长期项目的一部分,那么编写一个小型自定义插件会是更好的选择。
不过,对于教程中常见的许多 WordPress 调整来说,Code Snippets 已经足够。它让代码留在主题之外,把每项改动集中显示在一个地方,并允许你启用或禁用自定义功能,而不必直接编辑源文件。
