本文仅面向新手,以帮助新手正确使用functions添加自己的代码片段。
认识functions.php
functions.php
文件是您向WordPress主题添加独特功能的地方。它可以用于连接WordPress的核心功能,使您的主题更具模块化,可扩展性和功能性。
当您在WordPress网站上安装并激活主题时,当前主题的functions.php
文件会被自动启用。并在加载网页(或管理后台)时由WordPress自动加载的。
- 如果您的代码没有被执行,需要检查是否位于当前激活的主题的functions.php中
- 如果更改了主题,将无法再使用这些功能
每个主题都有其自己的functions.php
,如果您的主题已经具有functions.php
,则可以向其添加代码。如果没有,则可以创建一个纯文本文件,名为functions.php
添加到主题目录中。
- 子主题可以具有自己的
functions.php
文件,该文件可以与父主题结合使用或替换其父主题的functions.php
- 将功能添加到子功能文件是修改父主题的一种无风险方法。这样,当父主题更新时,您不必担心新添加的功能会消失
- 尽管子主题的
functions.php
是在父主题主题之前由WordPress加载的functions.php
,但它不会覆盖 它 - 子主题
functions.php
可以用于增强或替换父主题的功能 functions.php
在加载任何插件文件后加载- 如果WordPress插件调用的功能或过滤器与您在functions.php中调用的功能或过滤器名称相同,则结果可能是意外的,或者发生错误,甚至导致您的网站无法正常访问。
- 如果子主题functions.php调用的功能或过滤器与父主题functions.php调用的过滤器名称相同,则会发生错误,甚至导致您的网站无法正常访问。
Functions.php文件在哪里
functions.php文件的位置位于主题文件夹中。一般路径为:/wp-content/themes/your_theme_name/functions.php
Functions.php文件通常有两种访问方式。最可靠的方法,是访问wordpress网站的主题文件夹。最便捷的方法,是登录WordPress管理后台,在管理界面的主题编辑器中进行访问。
在文件系统中直接访问Functions.php
如下图所示,在我的Test网站下,我当前启用的主题twentyseventeen
,那么我当前使用和编辑的functions.php
路径就是下面这样。
注意:一定是当前激活的主题文件夹下的functions.php
。

那么怎么知道你现在用的主题文件夹名称?在wordpress 后台点击“外观”>”主题”,点击你当前激活的主题,然后观察地址栏,如下图所示:http://localhost/test/wp-admin/themes.php?theme=twentyseventeen
,theme=后面跟着的,就是你的主题的目录。

使用WordPress编辑器访问functions.php
如下图所示:
- ①② 是主题编辑器所在的位置和进入方法。
- ③④ 选择需要编辑的主题,默认就是你当前激活的主题,如果要编辑其他主题,先在下拉列表中选择,然后点击“选择”。
- ⑤ 要编辑主题中的什么文件。此处我们编辑
functions.php
,所以点击一下这个文件,则编辑区内容会刷新为functions.php中现在的内容 - ⑥ 文件内容结尾处,我们一般会把自定义代码添加到文件结尾处。
- ⑦ 如果知道要修改的函数的名称,可以从这里进行选择,快速直达。
- ⑧ 操作完成之后,记得更新。如果有普通语法错误,会提示错误,并拒绝保存。

怎么使用functions.php
如果您决定编辑functions.php
文件,请格外小心。请谨记以下原则:
- 更新主题后,对functions.php的编辑将丢失。
- 如果您更换WordPress主题,编辑将丢失。
- 在functions.php文件中犯一个编码错误也可能导致其他WordPress错误。
- 如果您有子主题,则仅应编辑functions.php文件,并且代码片段仅与活动子主题一起使用。例如,您可能要包括自定义字体,样式表的代码片段,或添加专门用于该特定子主题的语言翻译文件。
functions.php
使用方法
- 将需要使用的代码保存到当前主题
functions.php
(如果使用了子主题,需要放在子主题functions.php
,推荐使用子主题)最后位置。 - 注意:
- 如果
functions.php
最后一行结尾处没有?>
,请确保你的代码片段开始也没有<?php - 如果
functions.php
最后一行结尾处有?>
,并确保您复制的代码前面有<?php
,结尾有?>
。
- 新的<?php // 您的代码 ?>代码段落和前面一个
?>
之间只可以换行,不能有任何空行。 - 任何时候,
<?php // 您的代码 ?>
需要成对出现,不能存在<?php <?php
,或者?> ?>
- 如果
- 修改完成后刷新后台页面或者前台,即可预览效果。

<?php //代码 ?>
作为开始和结束标记。
如上图所示:
- 每个代码段落,我以
<?php //代码 ?>
作为开头和结束。例如代码段落A和代码段落B。 - 保证每个
?>
后面换行后紧跟<?php
,绝不出现任何空行。例如A2和B1之间。 - 可以在
<?php //代码 ?>
的php段落内部添加空行,以方便维护和直观的区分功能。例如图中的蓝色空行 - 可以在
<?php //代码 ?>
的php段落内部添加注释,以方便进行解释或者说明。例如A3和B3 - 在
functions.php
结尾处,可以留空,不写?>
,例如途中的C
[…] ← 前一篇文章后一篇文章 → […]