A. 如何在wordPress主頁,文章頁顯示不同頁腳
如何在WordPress主頁,文章頁顯示不同頁腳
這就是需設置成不同的模板
寫個判讀語句,根據不同的頁面id識別調用不同footer模板
B. wordpress pdf插件哪個好用
1. PDF Viewer:安裝了PDF Viewer後,你就能在你的WordPress帖子和頁面上顯示PDF文件了。這款插件使用的Mozilla的PDF js腳本,呈現的PDF文件美觀實用,帶有滾動、搜索、跳頁、列印和載入等功能。
2. WP Advanced PDF:此款插件讓你的用戶可以以PDF格式下載你網站的帖子和網頁。你可以設置所有用戶或僅注冊用戶能以PDF格式下載內容。你能在你的PDF文件上使用自定義字體、標識,甚至加上水印。
3. PDF & Print by BestWebSoft:顧名思義,此款插件為你的WordPress帖子、頁面和自定義帖子類型增加了一個PDF下載和列印按鈕。你能添加網站標題、特色圖片、自定義風格和字體。此插件在生成PDF文件或創建列印格式的文件時還能執行簡碼。
4. PDF Image Generator:此款插件能為你的PDF文件生成封面圖片,你可將該文件添加到WordPress帖子中以供下載。生成的封面圖片可以是PDF文件的首頁也可以是特色圖片。下載圖標將以縮略圖的形式呈現,點擊後即可連接到PDF文件。
5. PDF Thumbnails:此款插件也能在上傳時生成一個文件首頁的縮略圖。但是,同上款插件不同的是,這里你的PDF文件和縮略圖是兩個分離的文件,你需要手動將生成的縮略圖插入,才能將其連接到相應的文件。
6. DK PDF:此款插件十分強大,用戶只需要點擊一個按鈕就能將你的帖子和頁面以PDF格式下載。它的界面很容易設置PDF下載按鈕,並為下載的PDF文件創建你自定義的頁眉和頁腳。
此插件也有簡碼,你能控制PDF的內容,也能隱藏一些你不想出現在PDF下載文件中內容。
7. PDF Embedder:此款插件能將PDF文件嵌入你的WordPress帖子和網頁中,腳本語言是JavaScript,支持放大、導航、下載等功能。
8. WordPress PDF Light Viewer Plugin:此款插件的最大優點就是,能嵌入大型PDF文件。它的JavaScript庫用的是Turn .js,能將文件呈現為帶有縮略圖導航的翻頁電子書,帶有放大、導航、全屏等功能,且能任何尺寸的設備上瀏覽。
9. BSK PDF Manager:此款插件是一款用於WordPress網站的PDF文件文件管理器。你可以用它來為你大量的PDF文件分類顯示,或一鍵下載。
C. 在wordpress後台當中怎樣設置頁腳,底部。
這個 如果系統默認的 話 一般是主題的 footer 這個文件改,反正你看下一般是 f開頭的,你可以看看 然後用本地 搭建一個環境修改看看。
D. wordpress默認頁腳列怎麼修改
可能是在主題設置或者是外觀小工具那進行更改。具體得看你的網站
E. wordpress升級後右側欄和底部消失
先檢查一下源代碼!看看是不是有什麼異常!
F. 在wordpress中,怎樣使某個菜單顯示在頁腳,某個菜單顯示在導航位置
用PAGE 或者category ID來控制顯示,,,,比如默認的 WORDPRESS分類是,,(未分類),這個內ID是=1,所以你把這容個(未分類)顯示在,你要的位置,代碼如下
<?php
$args=array(
'orderby' => 'name',
『include』=> 『1,3,2』, /* 這里填寫你要的分類ID */
'order' => 'ASC'
);
$categories=get_categories($args);
foreach($categories as $category) {
echo '<a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a>';
}
?>
相應的<LI>/<a>標簽class或者ID自己填寫
G. 如何設置wordpress頁腳
使用css將table的border設為None
H. wordpress的插件Custom Login 怎麼設置
資源
在 插件資源集合 有各種你可能需要的資源,包括外站關於寫插件的文章,以及特定主題的文章。
學習一個叫 Hello Dolly 的插件「範本」可以領你入門。
如果你的插件已經寫完了,並自以為寫的不錯,查看 插件提交以及推廣。
新建一個插件
這個部分告訴你怎麼把開發插件的理想變為現實。
名稱,文件和地方
插件名
你得先想一個名字,並且努力讓它獨一無二。在 Plugins 或者其他寶貝地方——Google或者網路先驗證一下這個名字到底是不是獨一無二的。另外你的名字得讓別人明白你的插件是干什麼的。
插件文件
下一步是創建一個PHP文件。按照原文奇怪的邏輯,你得先想好名字。這個名字還得是從插件名衍生過來的(其實是為你自己辨認的)。舉個例子吧,比如說你的插件名字叫 "Fabulous Functionality",你的PHP名字可能是 fabfunc.php。另外不要用漢語拼音(這也是我加的),還要避免重名。人民群眾會把你的插件安裝到一個你也知道的叫wp-content/plugins/的地方,如果名字沖突豈不要悲劇了。
你也可以選擇把插件分割成幾個文件。 顯而易見一個php文件是必需的,同時還需要圖片、CSS、JavaScript、語言(當然也可以沒有)。如果有很多文件,命名一個php和一個文件夾,例如 fabfunc and fabfunc.php。把你所有插件文件放到文件夾里,然後讓你的用戶相信只要把你的整個壓縮包解壓到 wp-content/plugins/就能正常使用你的勞動成果。
在本文的其餘部分,「插件的PHP文件」是指主要插件的PHP文件,無論是在的wp-content/plugins/或子目錄。
Readme文件
如果你想將你的插件發布到http://wordpress.org/extend/plugins/, 你必須在插件包中建立一個標准格式readme.txt文件. 文件格式參見http://wordpress.org/extend/plugins/about/readme.txt.
主頁
最好為插件建立一個主頁,以介紹插件的功能、安裝方法、使用說明、適用的WordPress版本、插件更新信息等。
文件Headers
現在開始吧,首先讓我們從向PHP主文件中加入一些信息
標准插件信息
插件的主文件頂部必須包括一個標准插件信息頭。WordPress通過標准信息頭識別插件的存在,並把她加入到控制面板的插件管理頁面,這樣插件才能激活,載入插件,並運行裡面的函數;如果沒有信息頭,插件將無法激活和使用。標准信息插件頭的格式為:
<?php/*Plugin Name: 插件名Plugin URI: 插件的介紹或更新地址Description: 插件描述Version: 插件版本,例如 1.0Author: 插件作者名稱Author URI: 插件作者的鏈接License: A "Slug" license name e.g. GPL2*/?>
標准信息頭至少要包括插件名稱,這樣WordPress才能識別你的插件。其他信息將顯示在控制面板插件管理頁面中。標准插件信息對各行順序沒有要求。
這樣的升級機制能夠正確地讀出你的插件版本,建議你選擇一個格式的版本號,不同版本之間,並堅持下去。例如,x.x中或x.x.x或xx.xx.xxx
注意:文件必須是 UTF-8 格式!
版權信息
通常我們還要在標准信息頭中加入插件的許可證信息。大多數插件使用GPL或GPLCompatibleLicenses許可。如果使用GPL許可,要求插件中包含以下信息:
<?php/* Copyright 年份 作者名 (email : 你的郵箱) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA*/?>
開始編寫插件
現在是時候讓你的插件能幹些什麼了。這部分內容包括插件開發的一般思路,而且介紹了開發插件需要做哪些工作。
WordPress插件鉤子
許多WordPress插件通過連接一個或多個WordPress插件鉤子來完成他們的功能。插件鉤子的運行機理是,當WordPress運行到不同階段,WordPress會檢查當前階段是否注冊了插件函數,如果是,那麼函數將被執行。通過執行插件函數改變了WordPress的默認功能。
例如,在WordPress將日誌標題和post發送到瀏覽器前,會檢查是否有插件函數注冊了名為「the_title」的「filter」鉤子。如果是,標題文本將會傳送到注冊函數中,注冊函數返回值將會傳送到瀏覽器。所以,如果要在日誌標題中加入一些信息,可以通過這種方式實現。
另一個例子是名為「wp_footer」的「action」鉤子。在WordPress的HTML頁腳創建之前,會檢查是否有插件注冊了名為「wp_footer」的「action」鉤子,如果是依次執行她們。
在Plugin API了解更多如何注冊「filter」和「action」類型的鉤子函數,及WordPress提供了那些插件鉤子。如果你發現WordPress沒有提供自己想要的鉤子,你可以建議WordPress加入這個鉤子,很多建議WordPress都會採納。具體方法參考Reporting Bugs。
模版標簽
另一個通過插件加入新功能的方法是建立自定義的模版標簽Template Tags。如果有人想用你的插件,可以在他們的主題中添加這些標簽,邊欄,文章內容段,或者任意的只要是適合這插件的地方。例如,一個給文章添加地理位置的插件可能定義了一個模板標簽函數geotag_list_states()放在邊欄上,這里列表了所有在文章中關聯的州的名稱,並且還帶有插件提供的到這些州的文檔頁的鏈接。
定義一個自定義模板標簽,僅需要寫一個PHP函數,並且在你插件主頁或者插件的主PHP文件中聲明一下。聲明函數的時候,為這個函數提供一個示例來明確如果想要應用這個函數需要加主題中加些什麼文件是個相當棒的主意。
保存插件數據到資料庫
大多數WordPress插件需要站點的所有者或者是博客的用戶輸入信息,然後在對話過程中保存起來,以便過濾器函數(filter)、動作函數(action)或者模板函數(Template)使用。這些信息必須保存在WordPress的資料庫中,以便下次使用。這里有兩種基本的方法用於保存插件的信息到資料庫裡面。
使用WordPress的"option"機制(稍後會有介紹)。這種方法適合於保存一些相對小數量的靜態命名類數據--這類數據通常只需要網站的所有者在首次建立插件的時候輸入,以後很少改動。
文章屬性post meta(a.k.a. Custom Fields),適用於那些只和個人文章、頁面或者附件有關的數據。
參看post_meta Function Examples, add_post_meta(), 以及與文章相關函數屬性post.fuction meta (a.k.a. Custom Fields).
自定義分類法。對於文章分類或者其他對象,比如用戶、評論,或者用戶可編輯列表中的數據名稱/值,可以考慮使用自定義分類法,尤其是當你要訪問的所有的文章/對象與給定的分類法項目相關聯的時候。查閱 Custom Taxonomies
在資料庫中創建一個新的自定義數據表。這種方法適合於與個人文章、頁面、附件或者評論相關的數據,這類數據會隨著時間越來越多,它們也沒有專有名稱。參看Creating Tables with Plugins來了解更多這類信息處理方法。
WordPress的選項機制
參看 Creating Options Pages 得到更多如何創建會自動保存你選項數據的頁面。
WordPress擁有一個機制來保存,更新和檢索WordPress資料庫中專用,名稱類數據(即"options"機制)。選項值可以是字元,數組或PHP對象(他們會被"序列化",或在存儲前轉換為字元,並在被檢索時解開序列)。選項名稱是字元,並且它們必須是獨一無二的,這樣就不會與其它的WordPress插件相沖突。
它也通常被認為是一個不錯的主意,將你的插件使用的選項的數量降到最低。例如,考慮存儲序列化數組的10個元素作為一個單一的命名選項,而不是存儲10個不同的命名選項。
這里是你的插件應用WordPress option功能的主要函數。
add_option($name, $value, $deprecated, $autoload);
建立一個新的option; 如果這個option已經存在則不做動作.
$name
必須 (string). 要添加的option的名稱.
$value
可選(string), 默認是空字元. option值會存在這里.
$deprecated
可選 (string), 不再被WordPress使用了,你可以不填或NULL 如果你希望應用後面的$autoload參數.
$autoload
可選, 默認為 'yes' (enum: 'yes' or 'no'). 如果設置為 'yes' 那麼這個option會被get_alloptions 函數自動檢索.
get_option($option);
在資料庫中檢索option值.
$option
Required (string). 你想返回數值的option名稱。你可以Option Reference在找到一個隨著WordPress一起安裝好的默認option表。
update_option($option_name, $newvalue);
更新或創建資料庫中的option值(注意 add_option 不是必須被調用,如果你不想作用 $deprecated 或$autoload 參數).
$option_name
必須(string). 要更新的option名.
$newvalue
必須. (string|array|object) option的新值.
管理面板
假定你的插件有一些選項(option)存儲於WordPress的資料庫中(參看上一節),你可能會想要一個主控面板來允許你的插件用戶查看和編輯選項值。實現這一目標的方法闡述於Adding Administration Menus。
插件國際化
在你完成了你的插件的編寫工作之後,另一個需要考慮的問題(假設你准備跟大家分享你的插件的話)就是將其國際化。國際化就是將你的軟體設置成能夠本地化的過程;本地化是將軟體中顯示的語言翻譯成其他語言的過程。Wordpress正在被全球的人們使用,所以全球化和本地化是他內在的特性,這其中就包括了插件的本地化。
請注意,插件的語言文件是不會自動載入。將此插件代碼,以確保載入的語言文件:
load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );
要簡單地取一個字元串使用 __('String name','your-unique-name'); 返回翻譯或者 _e('String name','your-unique-name'); 輸出翻譯。翻譯,然後進入你插件的 /languages 文件夾。
我們十分希望你能夠將你的插件國際化,這樣其他國家的用戶就可以在自己的本地使用它了。我們有一個關於國際化的綜合說明在I18n for WordPress Developers,這其中就包括了一個描述插件國際化的部分。
更新你的插件
本節介紹將插件託管到 http://wordpress.org/extend/plugins 之後必要的更新步驟。特別列出wordpress.org關於使用 Subversion(SVN)的一些細節。
假設你已經提交你的插件到WordPress的插件庫,隨著時間的推移,你可能會發現需要將某些功能添加到插件或修正錯誤。更新代碼,並將變化提交到你的插件主幹(trunk),這些變化將是公開可見的,但僅限於在技術上志同道合的人通過SVN檢查你的插件。其他用戶通過網站或自己的WordPress插件管理下載都不會改變。
當你准備發布一個新版本的插件:
確保一切承諾和新版本的實際工作。注意所有版本的WordPress的插件支持,並嘗試與他們進行測試。不要只是測試新功能,也確保你不小心打破一些插件的舊功能。
更改主要的PHP文件頭注釋中的版本號為新的版本號。
更改readme.txt文件的「Stable tag」欄位中的版本號。
在readme.txt文件中添加一個新的小節「changelog「,簡要介紹與最後一個版本相比,新版本有什麼改變。這將列出的插件頁面上的「更新日誌」選項卡。
提交這些更改。
創建一個新的SVN標記作為副本主幹(trunk),遵循 this guide。
給系統一個運行兩三分鍾,然後檢查你的插件,看看更新是否一切正常,以及WordPress 是否提示插件有更新(更新檢查可能有緩存,比如wordpress.org插件頁面或後台安裝,所以這可能需要一些時間 —— 嘗試訪問「可用更新」頁面)。
故障排除:
wordpress.org插件的頁面上仍然列出舊版本。你是否更新了樹干文件夾'stable tag' 欄位?只創建一個標簽和或更新readme.txt文件是不夠的!
插件的頁面提供了一個zip文件的新版本,但按鈕仍然列出舊的版本號,而且WordPress 沒有裝更新通知。你是否已修改主要的PHP文件中「Version」版本號?
對於其他問題,請參考: The Plugins directory and readme.txt files
插件開發建議
最後這個部分是關於開發插件的一些建議。
WordPress插件的代碼應該遵循 WordPress Coding Standards. 另外請同時參考Inline Documentation。
你的插件中所有函數的名稱都應該與現存的Wordpress Core函數,其他插件或主題的任何名稱不同。基於這個原因,我們建議你在你的插件的所有函數的名稱之前加上一個你自己選擇的前綴,或者把你的插件的函數都寫在一個類裡面(當然這個類的名字也必須是唯一的)。
請不要把Wordpress資料庫表格前綴(通常是「wp_」)直接寫在你的插件里,請使用$wpdb->prefix 。
雖然資料庫的讀取相對便宜,但它的寫入是相當昂貴的。資料庫十分擅長獲取信息並呈現給用戶,而且這些操作(通常)是非常迅速的。然而對資料庫進行改動就是一個非常復雜的過程了,而且需要使用更長的計算時間。因此,請盡量減少你對資料庫進行寫入的次數。在你編寫程序的時候就做好所有的准備,這樣就可以只在必須的時候再進行寫入了。
在資料庫里只SELECT你需要的東西。盡管資料庫的讀取十分便捷,我們依然推薦你值查找真正需要的數據,來盡量減少資料庫的負載。例如,如果你只想獲得表格的行數,不要使用 SELECT * FROM, 因為這樣的話每一行中的所有數據都會被讀出,導致內存的浪費。同樣的,如果在插件中你只想獲得post_id和post_author,請只 SELECT 這兩項來減少資料庫的負載。記住:在某一個操作的同時可能有其他上百個進程需要使用資料庫,而資料庫和伺服器都必須同時滿足所有這些進程的需求。學習怎樣盡量減少你的插件對資料庫的使用可以避免對這些資源的濫用。
不要讓你的PHP出錯。在你的wp_config.php文件中添加define('WP_DEBUG',true);,對你的所有函數進行測試來確定是否有任何的錯誤或者警告。有多少,就修復多少,直到再也不出現為止。
盡量不要直接調用<script>和<style>標記 —— 推薦使用 wp_enqueue_style() 和 wp_enqueue_script() 函數。他們幫助消除引用重復的腳本和樣式,以及引進依賴的支持。
I. Wordpress怎麼修改頁腳社交組件
一、工具:電腦、wordpress
二、操作步驟:
【1】登錄wordpress後台,找到「外觀」-「編輯」。版
【2】進權入「編輯」頁面,找到「 底部 (footer.php)」
【3】找到<a href= >」><?php printf( __( 『Proudly powered by %s』, 『twentyfourteen』 ), 『WordPress』 ); ?></a >,將此段代碼刪除,改為自己的版權信息。
【4】最後點擊更新文件,修改結束,刷新首頁看修改效果吧。
注意事項:修改之前,先備份一份,以免修改錯誤回不到初始了。
J. 如何開發一個WordPress插件
本文假設你已經熟悉 WordPress 的基本功能,以及 PHP 編程。
資源
在 插件資源集合 有各種你可能需要的資源,包括外站關於寫插件的文章,以及特定主題的文章。
學習一個叫 Hello Dolly 的插件「範本」可以領你入門。
如果你的插件已經寫完了,並自以為寫的不錯,查看 插件提交以及推廣。
新建一個插件
這個部分告訴你怎麼把開發插件的理想變為現實。
名稱,文件和地方
插件名
你得先想一個名字,並且努力讓它獨一無二。在 Plugins 或者其他寶貝地方——Google或者網路先驗證一下這個名字到底是不是獨一無二的。另外你的名字得讓別人明白你的插件是干什麼的。
插件文件
下一步是創建一個PHP文件。按照原文奇怪的邏輯,你得先想好名字。這個名字還得是從插件名衍生過來的(其實是為你自己辨認的)。舉個例子吧,比如說你的插件名字叫 "Fabulous Functionality",你的PHP名字可能是 fabfunc.php。另外不要用漢語拼音(這也是我加的),還要避免重名。人民群眾會把你的插件安裝到一個你也知道的叫wp-content/plugins/的地方,如果名字沖突豈不要悲劇了。
你也可以選擇把插件分割成幾個文件。 顯而易見一個php文件是必需的,同時還需要圖片、CSS、JavaScript、語言(當然也可以沒有)。如果有很多文件,命名一個php和一個文件夾,例如 fabfunc and fabfunc.php。把你所有插件文件放到文件夾里,然後讓你的用戶相信只要把你的整個壓縮包解壓到 wp-content/plugins/就能正常使用你的勞動成果。
在本文的其餘部分,「插件的PHP文件」是指主要插件的PHP文件,無論是在的wp-content/plugins/或子目錄。
Readme文件
如果你想將你的插件發布到http://wordpress.org/extend/plugins/, 你必須在插件包中建立一個標准格式readme.txt文件. 文件格式參見http://wordpress.org/extend/plugins/about/readme.txt.
主頁
最好為插件建立一個主頁,以介紹插件的功能、安裝方法、使用說明、適用的WordPress版本、插件更新信息等。
文件Headers
現在開始吧,首先讓我們從向PHP主文件中加入一些信息
標准插件信息
插件的主文件頂部必須包括一個標准插件信息頭。WordPress通過標准信息頭識別插件的存在,並把她加入到控制面板的插件管理頁面,這樣插件才能激活,載入插件,並運行裡面的函數;如果沒有信息頭,插件將無法激活和使用。標准信息插件頭的格式為:
<?php/*Plugin Name: 插件名Plugin URI: 插件的介紹或更新地址Description: 插件描述Version: 插件版本,例如 1.0Author: 插件作者名稱Author URI: 插件作者的鏈接License: A "Slug" license name e.g. GPL2*/?>
標准信息頭至少要包括插件名稱,這樣WordPress才能識別你的插件。其他信息將顯示在控制面板插件管理頁面中。標准插件信息對各行順序沒有要求。
這樣的升級機制能夠正確地讀出你的插件版本,建議你選擇一個格式的版本號,不同版本之間,並堅持下去。例如,x.x中或x.x.x或xx.xx.xxx
注意:文件必須是 UTF-8 格式!
版權信息
通常我們還要在標准信息頭中加入插件的許可證信息。大多數插件使用GPL或GPLCompatibleLicenses許可。如果使用GPL許可,要求插件中包含以下信息:
<?php/* Copyright 年份 作者名 (email : 你的郵箱) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA*/?>
開始編寫插件
現在是時候讓你的插件能幹些什麼了。這部分內容包括插件開發的一般思路,而且介紹了開發插件需要做哪些工作。
WordPress插件鉤子
許多WordPress插件通過連接一個或多個WordPress插件鉤子來完成他們的功能。插件鉤子的運行機理是,當WordPress運行到不同階段,WordPress會檢查當前階段是否注冊了插件函數,如果是,那麼函數將被執行。通過執行插件函數改變了WordPress的默認功能。
例如,在WordPress將日誌標題和post發送到瀏覽器前,會檢查是否有插件函數注冊了名為「the_title」的「filter」鉤子。如果是,標題文本將會傳送到注冊函數中,注冊函數返回值將會傳送到瀏覽器。所以,如果要在日誌標題中加入一些信息,可以通過這種方式實現。
另一個例子是名為「wp_footer」的「action」鉤子。在WordPress的HTML頁腳創建之前,會檢查是否有插件注冊了名為「wp_footer」的「action」鉤子,如果是依次執行她們。
在Plugin API了解更多如何注冊「filter」和「action」類型的鉤子函數,及WordPress提供了那些插件鉤子。如果你發現WordPress沒有提供自己想要的鉤子,你可以建議WordPress加入這個鉤子,很多建議WordPress都會採納。具體方法參考Reporting Bugs。
模版標簽
另一個通過插件加入新功能的方法是建立自定義的模版標簽Template Tags。如果有人想用你的插件,可以在他們的主題中添加這些標簽,邊欄,文章內容段,或者任意的只要是適合這插件的地方。例如,一個給文章添加地理位置的插件可能定義了一個模板標簽函數geotag_list_states()放在邊欄上,這里列表了所有在文章中關聯的州的名稱,並且還帶有插件提供的到這些州的文檔頁的鏈接。
定義一個自定義模板標簽,僅需要寫一個PHP函數,並且在你插件主頁或者插件的主PHP文件中聲明一下。聲明函數的時候,為這個函數提供一個示例來明確如果想要應用這個函數需要加主題中加些什麼文件是個相當棒的主意。
保存插件數據到資料庫
大多數WordPress插件需要站點的所有者或者是博客的用戶輸入信息,然後在對話過程中保存起來,以便過濾器函數(filter)、動作函數(action)或者模板函數(Template)使用。這些信息必須保存在WordPress的資料庫中,以便下次使用。這里有兩種基本的方法用於保存插件的信息到資料庫裡面。
使用WordPress的"option"機制(稍後會有介紹)。這種方法適合於保存一些相對小數量的靜態命名類數據--這類數據通常只需要網站的所有者在首次建立插件的時候輸入,以後很少改動。
文章屬性post meta(a.k.a. Custom Fields),適用於那些只和個人文章、頁面或者附件有關的數據。
參看post_meta Function Examples, add_post_meta(), 以及與文章相關函數屬性post.fuction meta (a.k.a. Custom Fields).
自定義分類法。對於文章分類或者其他對象,比如用戶、評論,或者用戶可編輯列表中的數據名稱/值,可以考慮使用自定義分類法,尤其是當你要訪問的所有的文章/對象與給定的分類法項目相關聯的時候。查閱 Custom Taxonomies
在資料庫中創建一個新的自定義數據表。這種方法適合於與個人文章、頁面、附件或者評論相關的數據,這類數據會隨著時間越來越多,它們也沒有專有名稱。參看Creating Tables with Plugins來了解更多這類信息處理方法。
WordPress的選項機制
參看 Creating Options Pages 得到更多如何創建會自動保存你選項數據的頁面。
WordPress擁有一個機制來保存,更新和檢索WordPress資料庫中專用,名稱類數據(即"options"機制)。選項值可以是字元,數組或PHP對象(他們會被"序列化",或在存儲前轉換為字元,並在被檢索時解開序列)。選項名稱是字元,並且它們必須是獨一無二的,這樣就不會與其它的WordPress插件相沖突。
它也通常被認為是一個不錯的主意,將你的插件使用的選項的數量降到最低。例如,考慮存儲序列化數組的10個元素作為一個單一的命名選項,而不是存儲10個不同的命名選項。
這里是你的插件應用WordPress option功能的主要函數。
add_option($name, $value, $deprecated, $autoload);
建立一個新的option; 如果這個option已經存在則不做動作.
$name
必須 (string). 要添加的option的名稱.
$value
可選(string), 默認是空字元. option值會存在這里.
$deprecated
可選 (string), 不再被WordPress使用了,你可以不填或NULL 如果你希望應用後面的$autoload參數.
$autoload
可選, 默認為 'yes' (enum: 'yes' or 'no'). 如果設置為 'yes' 那麼這個option會被get_alloptions 函數自動檢索.
get_option($option);
在資料庫中檢索option值.
$option
Required (string). 你想返回數值的option名稱。你可以Option Reference在找到一個隨著WordPress一起安裝好的默認option表。
update_option($option_name, $newvalue);
更新或創建資料庫中的option值(注意 add_option 不是必須被調用,如果你不想作用 $deprecated 或$autoload 參數).
$option_name
必須(string). 要更新的option名.
$newvalue
必須. (string|array|object) option的新值.
管理面板
假定你的插件有一些選項(option)存儲於WordPress的資料庫中(參看上一節),你可能會想要一個主控面板來允許你的插件用戶查看和編輯選項值。實現這一目標的方法闡述於Adding Administration Menus。
插件國際化
在你完成了你的插件的編寫工作之後,另一個需要考慮的問題(假設你准備跟大家分享你的插件的話)就是將其國際化。國際化就是將你的軟體設置成能夠本地化的過程;本地化是將軟體中顯示的語言翻譯成其他語言的過程。Wordpress正在被全球的人們使用,所以全球化和本地化是他內在的特性,這其中就包括了插件的本地化。
請注意,插件的語言文件是不會自動載入。將此插件代碼,以確保載入的語言文件:
load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );
要簡單地取一個字元串使用 __('String name','your-unique-name'); 返回翻譯或者 _e('String name','your-unique-name'); 輸出翻譯。翻譯,然後進入你插件的 /languages 文件夾。
我們十分希望你能夠將你的插件國際化,這樣其他國家的用戶就可以在自己的本地使用它了。我們有一個關於國際化的綜合說明在I18n for WordPress Developers,這其中就包括了一個描述插件國際化的部分。
更新你的插件
本節介紹將插件託管到 http://wordpress.org/extend/plugins 之後必要的更新步驟。特別列出wordpress.org關於使用 Subversion(SVN)的一些細節。
假設你已經提交你的插件到WordPress的插件庫,隨著時間的推移,你可能會發現需要將某些功能添加到插件或修正錯誤。更新代碼,並將變化提交到你的插件主幹(trunk),這些變化將是公開可見的,但僅限於在技術上志同道合的人通過SVN檢查你的插件。其他用戶通過網站或自己的WordPress插件管理下載都不會改變。
當你准備發布一個新版本的插件:
確保一切承諾和新版本的實際工作。注意所有版本的WordPress的插件支持,並嘗試與他們進行測試。不要只是測試新功能,也確保你不小心打破一些插件的舊功能。
更改主要的PHP文件頭注釋中的版本號為新的版本號。
更改readme.txt文件的「Stable tag」欄位中的版本號。
在readme.txt文件中添加一個新的小節「changelog「,簡要介紹與最後一個版本相比,新版本有什麼改變。這將列出的插件頁面上的「更新日誌」選項卡。
提交這些更改。
創建一個新的SVN標記作為副本主幹(trunk),遵循 this guide。
給系統一個運行兩三分鍾,然後檢查你的插件,看看更新是否一切正常,以及WordPress 是否提示插件有更新(更新檢查可能有緩存,比如wordpress.org插件頁面或後台安裝,所以這可能需要一些時間 —— 嘗試訪問「可用更新」頁面)。
故障排除:
wordpress.org插件的頁面上仍然列出舊版本。你是否更新了樹干文件夾'stable tag' 欄位?只創建一個標簽和或更新readme.txt文件是不夠的!
插件的頁面提供了一個zip文件的新版本,但按鈕仍然列出舊的版本號,而且WordPress 沒有裝更新通知。你是否已修改主要的PHP文件中「Version」版本號?
對於其他問題,請參考: The Plugins directory and readme.txt files
插件開發建議
最後這個部分是關於開發插件的一些建議。
WordPress插件的代碼應該遵循 WordPress Coding Standards. 另外請同時參考Inline Documentation。
你的插件中所有函數的名稱都應該與現存的Wordpress Core函數,其他插件或主題的任何名稱不同。基於這個原因,我們建議你在你的插件的所有函數的名稱之前加上一個你自己選擇的前綴,或者把你的插件的函數都寫在一個類裡面(當然這個類的名字也必須是唯一的)。
請不要把Wordpress資料庫表格前綴(通常是「wp_」)直接寫在你的插件里,請使用$wpdb->prefix 。
雖然資料庫的讀取相對便宜,但它的寫入是相當昂貴的。資料庫十分擅長獲取信息並呈現給用戶,而且這些操作(通常)是非常迅速的。然而對資料庫進行改動就是一個非常復雜的過程了,而且需要使用更長的計算時間。因此,請盡量減少你對資料庫進行寫入的次數。在你編寫程序的時候就做好所有的准備,這樣就可以只在必須的時候再進行寫入了。
在資料庫里只SELECT你需要的東西。盡管資料庫的讀取十分便捷,我們依然推薦你值查找真正需要的數據,來盡量減少資料庫的負載。例如,如果你只想獲得表格的行數,不要使用 SELECT * FROM, 因為這樣的話每一行中的所有數據都會被讀出,導致內存的浪費。同樣的,如果在插件中你只想獲得post_id和post_author,請只 SELECT 這兩項來減少資料庫的負載。記住:在某一個操作的同時可能有其他上百個進程需要使用資料庫,而資料庫和伺服器都必須同時滿足所有這些進程的需求。學習怎樣盡量減少你的插件對資料庫的使用可以避免對這些資源的濫用。
不要讓你的PHP出錯。在你的wp_config.php文件中添加define('WP_DEBUG',true);,對你的所有函數進行測試來確定是否有任何的錯誤或者警告。有多少,就修復多少,直到再也不出現為止。
盡量不要直接調用<script>和<style>標記 —— 推薦使用 wp_enqueue_style() 和 wp_enqueue_script() 函數。他們幫助消除引用重復的腳本和樣式,以及引進依賴的支持。
原文:http://codex.wordpress.org/Writing_a_Plugin