當(dāng)前位置:首頁(yè)>WordPress建站>新手入門(mén)>編輯WordPress主題的 functions.php 文件的注意事項(xiàng)

編輯WordPress主題的 functions.php 文件的注意事項(xiàng)

WordPress大學(xué) 很多教程都提到“將代碼添加到主題的 functions.php 文件”,但總有些新手朋友總是反饋說(shuō):如何添加?添加后出錯(cuò)?添加后網(wǎng)站就不能訪問(wèn)啦……所以今天就來(lái)說(shuō)說(shuō)編輯 functions.php 文件應(yīng)該注意哪些問(wèn)題。

functions.php 有什么用

functions.php 是 WordPress 預(yù)留的功能函數(shù)文件,專門(mén)用于添加各種自定義函數(shù)代碼。現(xiàn)在的WordPress主題的功能越來(lái)越強(qiáng)大了,一般都自帶了 functions.php 這個(gè)文件(通常在主題根目錄)。

php中的注釋

注釋,就是專門(mén)用來(lái)對(duì)代碼進(jìn)行補(bǔ)充說(shuō)明的文本,一般分為單行注釋和多行注釋,單行注釋使用兩個(gè)斜杠 // ,多行注釋使用 /* */,示例:

<?php
/**
 * 這是多行注釋
 * 注釋2行
 */
function hello_world() {
	// 單行注釋
	// 再注釋一行
	echo "<p>Hello World!</p>";
}
?>

php代碼應(yīng)該添加到 <?php  和 ?> 之間

打開(kāi) functions.php 文件,你會(huì)發(fā)現(xiàn),文件開(kāi)頭一般都是 <?php ,表明這個(gè)文件是遵循php代碼規(guī)范的,你需要將函數(shù)代碼添加到它的里面,比如:

<?php
//開(kāi)始php語(yǔ)法

function hello_world() {
	echo "<p>Hello World!</p>";
}

//結(jié)束php語(yǔ)法
?>

避免 <?php 和 ?> 多重嵌套

在 <?php 和 ?> 之間,不要再添加 <?php 和 ?>,如下面的例子就是錯(cuò)誤的:

<?php
//開(kāi)始php語(yǔ)法

<?php //錯(cuò)誤:嵌套啦

function hello_world() {
	echo "<p>Hello World!</p>";
}

?>

可以看到,第一個(gè) <?php 沒(méi)有結(jié)束,又嵌套了一個(gè) <?php ,這樣的后果就是導(dǎo)致部分 php 代碼失效,嚴(yán)重的可能會(huì)導(dǎo)致網(wǎng)站崩潰。

不要在 <?php 和 ?> 之間直接添加其他語(yǔ)種代碼

<?php 和 ?> 之間的代碼應(yīng)該符合php語(yǔ)言規(guī)范,你不可以直接在他們之間直接添加其他語(yǔ)種代碼,比如以下幾種錯(cuò)誤類型:

<?php

//錯(cuò)誤1:直接添加文本
Hello World!

//錯(cuò)誤2:直接添加html代碼
<div><p>Hello World!</p></div>

//錯(cuò)誤3:直接添加js代碼
<script type="text/javascript">
	$(document).ready(function() {
		$("a.anchorLink").anchorAnimate()
	});
</script>

//錯(cuò)誤4:直接添加css代碼
<style type="text/css" media="screen">
	.textComment{
		display: inline;
	}
</style>

?>

可能有些朋友會(huì)說(shuō),為什么我看到有些人可以添加html代碼?比如下面代碼的第 5 行:

<?php
function hello_world() {
	echo "<p>Hello World!</p>";
?>
	<div><p>Hello World!</p></div>
<?php
}
?>

其實(shí)這是php和html混排,Html代碼并沒(méi)有直接添加在 <?php 和 ?> 之間,你可以看到 第 4 行結(jié)束php語(yǔ)法,第 6 行重新開(kāi)始 php語(yǔ)法,這種寫(xiě)法是合法的。

注意字符轉(zhuǎn)義

網(wǎng)絡(luò)上很多代碼由于沒(méi)有使用代碼高亮插件,可能會(huì)導(dǎo)致代碼中的某些字符發(fā)生轉(zhuǎn)義,或其他錯(cuò)誤。比如:

半角符號(hào)變成全角符號(hào):引號(hào)、逗號(hào)、句號(hào)、冒號(hào)、括號(hào)、分號(hào)等

常見(jiàn)的轉(zhuǎn)義:< 變成 &lt;> 變成 &gt;& 變成 &amp;

注意php文件的編碼

WordPress 是使用 utf-8 格式編碼的php程序,utf-8編碼又分為 含BOM 和 無(wú)BOM 兩種,由于我們很可能在 php 文件中添加了中文,所以建議保存 functions.php 等php文件為 Utf-8 無(wú) BOM 格式。否則,很可能會(huì)出現(xiàn) 網(wǎng)站空白、布局錯(cuò)亂、出現(xiàn)異常文字 等問(wèn)題。

使用專業(yè)的代碼編輯工具

強(qiáng)烈建議大家使用專業(yè)一點(diǎn)的代碼編輯工具,比如 Notepad++、Sublime Text、EditPlus、DreamWeaver等,使用這類工具的好處:支持代碼高亮、代碼糾錯(cuò)提示、快捷插入代碼片段、支持選擇編碼類型等等。

特別提示不要使用微軟自帶的 txt記事本編輯器 來(lái)編輯 php 文件!!很可能會(huì)導(dǎo)致代碼錯(cuò)誤、編碼錯(cuò)誤等問(wèn)題!!很多 FTP軟件默認(rèn)也是調(diào)用 txt記事本編輯器的 ,需要注意。

最后,建議大家學(xué)習(xí)一下 php編程入門(mén),至少簡(jiǎn)單了解一下基本的語(yǔ)句用法,比如 if、echo 等。

聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書(shū)籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號(hào) WPDAXUE
新手入門(mén)

WordPress 偽靜態(tài)規(guī)則(IIS/Apache/Nginx)

2013-11-6 10:28:12

新手入門(mén)

讓你的WordPress網(wǎng)站更快的16條建議

2014-3-17 9:58:07

17 條回復(fù) A文章作者 M管理員
  1. user27469

    我只是想用wp設(shè)計(jì)一個(gè)網(wǎng)站而已,現(xiàn)在感覺(jué)得重新去讀一個(gè)計(jì)算機(jī)的本科?

    • 網(wǎng)站編輯

      任何人接觸新的東西,都是需要學(xué)習(xí)和實(shí)踐的,沒(méi)有人可以生來(lái)就會(huì)。如果你想快速開(kāi)始搭建一個(gè)網(wǎng)站,可以看下我們的成品站模板 http://www.ydqwiac.cn/wordpress-templates 是否有接近你想法的,找一套基本符合的作為起點(diǎn),你會(huì)省時(shí)省力很多。當(dāng)然了,有預(yù)算的話,找我們定制,高效又專業(yè)

  2. 王凱

    你好 博主 我也是不小心修改了functions文件 網(wǎng)站訪問(wèn)不了 我也刪除了添加的代碼 notepad++改了 utf-8 無(wú)bom格式用ftp上傳到網(wǎng)站 但是為什么還是不能訪問(wèn)。。。。求解

  3. confidence

    這是原版的
    <?php
    // include xiu theme functions file
    include 'functions.xiu.php';

    // custom functions
    我想加WordPress大學(xué)的代碼
    /**
    * 移除 WordPress 評(píng)論的網(wǎng)址URL表單及評(píng)論人鏈接
    * http://www.ydqwiac.cn/remove-wordpress-comments-url.html
    */
    //移除網(wǎng)址表單
    function url_filtered($fields)
    {
    if(isset($fields['url']))
    unset($fields['url']);
    return $fields;
    }
    add_filter('comment_form_default_fields', 'url_filtered');

    //移除評(píng)論人名字的鏈接
    function disable_comment_author_links( $author_link ){
    return strip_tags( $author_link );
    }
    add_filter( 'get_comment_author_link', 'disable_comment_author_links' );
    沒(méi)見(jiàn)到?結(jié)束啊,請(qǐng)問(wèn)這么加倡萌?!

  4. 倡萌,我的網(wǎng)站現(xiàn)在就打不開(kāi)了 就是因?yàn)楦牧薴unctions.php 這個(gè)文件,在線求等 怎么辦啊?

    • 使用FTP插件下載functions.php,然后刪除你修改出錯(cuò)的代碼,將文件另存為 utf-8 無(wú) bom 格式(使用文章介紹的一些專業(yè)編輯軟件)

    • 同難,試了多款FTP工具連接不到主機(jī),網(wǎng)站IP地址應(yīng)該沒(méi)錯(cuò),難受啊,憋屈

  5. 申請(qǐng)轉(zhuǎn)載這篇文章,請(qǐng)回復(fù)可否,謝謝。

    • 轉(zhuǎn)載本文請(qǐng)注明出自 WordPress大學(xué) ,并且保留本文鏈接地址(可點(diǎn)擊)

  6. windfire520

    現(xiàn)在就是只敢改這個(gè)文件,以及header和footer兩個(gè)。其他真心不敢動(dòng)。那個(gè)混排,其實(shí)會(huì)出錯(cuò),我不知道是怎么回事。div后面必須要調(diào)用class函數(shù),或者定義新class

  7. 倡萌有言說(shuō)的太霸氣了 恒創(chuàng)貌似挺有名的,我有好幾個(gè)朋友都用的這個(gè)

  8. 一開(kāi)始出過(guò)錯(cuò),后來(lái)學(xué)著學(xué)著就會(huì)了。。

    • 大都是這樣過(guò)來(lái)的

  9. 頂一個(gè),認(rèn)真學(xué)習(xí)了,希望有進(jìn)步。

?
個(gè)人中心
購(gòu)物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

赫章县| 石景山区| 万源市| 新兴县| 文成县| 双牌县| 甘南县| 德清县| 苍南县| 连山| 汪清县| 新龙县| 甘孜县| 肥东县| 淳安县| 陵川县| 长宁区| 承德市| 宁强县| 广饶县| 余姚市| 普格县| 江陵县| 广西| 上栗县| 灵武市| 鄂尔多斯市| 岚皋县| 莱芜市| 定结县| 临城县| 茂名市| 临洮县| 太仆寺旗| 仁化县| 昌平区| 吴江市| 台前县| 青海省| 平阴县| 通城县|