WordPress大学 很多教程都提到“将代码添加到主题的 functions.php 文件”,但总有些新手朋友总是反馈说:如何添加?添加后出错?添加后网站就不能访问啦……所以今天就来说说编辑 functions.php 文件应该注意哪些问题。
functions.php 有什么用
functions.php 是 WordPress 预留的功能函数文件,专门用于添加各种自定义函数代码。现在的WordPress主题的功能越来越强大了,一般都自带了 functions.php 这个文件(通常在主题根目录)。
php中的注释
注释,就是专门用来对代码进行补充说明的文本,一般分为单行注释和多行注释,单行注释使用两个斜杠 // ,多行注释使用 /* */,示例:
1 2 3 4 5 6 7 8 9 10 11 |
<?php /** * 这是多行注释 * 注释2行 */ function hello_world() { // 单行注释 // 再注释一行 echo "<p>Hello World!</p>"; } ?> |
php代码应该添加到 <?php 和 ?> 之间
打开 functions.php 文件,你会发现,文件开头一般都是 <?php ,表明这个文件是遵循php代码规范的,你需要将函数代码添加到它的里面,比如:
1 2 3 4 5 6 7 8 9 |
<?php //开始php语法 function hello_world() { echo "<p>Hello World!</p>"; } //结束php语法 ?> |
避免 <?php 和 ?> 多重嵌套
在 <?php 和 ?> 之间,不要再添加 <?php 和 ?>,如下面的例子就是错误的:
1 2 3 4 5 6 7 8 9 10 |
<?php //开始php语法 <?php //错误:嵌套啦 function hello_world() { echo "<p>Hello World!</p>"; } ?> |
可以看到,第一个 <?php 没有结束,又嵌套了一个 <?php ,这样的后果就是导致部分 php 代码失效,严重的可能会导致网站崩溃。
不要在 <?php 和 ?> 之间直接添加其他语种代码
<?php 和 ?> 之间的代码应该符合php语言规范,你不可以直接在他们之间直接添加其他语种代码,比如以下几种错误类型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php //错误1:直接添加文本 Hello World! //错误2:直接添加html代码 <div><p>Hello World!</p></div> //错误3:直接添加js代码 <script type="text/javascript"> $(document).ready(function() { $("a.anchorLink").anchorAnimate() }); </script> //错误4:直接添加css代码 <style type="text/css" media="screen"> .textComment{ display: inline; } </style> ?> |
可能有些朋友会说,为什么我看到有些人可以添加html代码?比如下面代码的第 5 行:
1 2 3 4 5 6 7 8 |
<?php function hello_world() { echo "<p>Hello World!</p>"; ?> <div><p>Hello World!</p></div> <?php } ?> |
其实这是php和html混排,Html代码并没有直接添加在 <?php 和 ?> 之间,你可以看到 第 4 行结束php语法,第 6 行重新开始 php语法,这种写法是合法的。
注意字符转义
网络上很多代码由于没有使用代码高亮插件,可能会导致代码中的某些字符发生转义,或其他错误。比如:
半角符号变成全角符号:引号、逗号、句号、冒号、括号、分号等
常见的转义:< 变成 < ,> 变成 > ,& 变成 & 等
注意php文件的编码
WordPress 是使用 utf-8 格式编码的php程序,utf-8编码又分为 含BOM 和 无BOM 两种,由于我们很可能在 php 文件中添加了中文,所以建议保存 functions.php 等php文件为 Utf-8 无 BOM 格式。否则,很可能会出现 网站空白、布局错乱、出现异常文字 等问题。
使用专业的代码编辑工具
强烈建议大家使用专业一点的代码编辑工具,比如 Notepad++、Sublime Text、EditPlus、DreamWeaver等,使用这类工具的好处:支持代码高亮、代码纠错提示、快捷插入代码片段、支持选择编码类型等等。
特别提示:不要使用微软自带的 txt记事本编辑器 来编辑 php 文件!!很可能会导致代码错误、编码错误等问题!!很多 FTP软件默认也是调用 txt记事本编辑器的 ,需要注意。