久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔
站長百科 | 數(shù)字化技能提升教程 數(shù)字化時代生存寶典
首頁
數(shù)字化百科
電子書
建站程序
開發(fā)
服務器
辦公軟件
開發(fā)教程
服務器教程
軟件使用教程
運營教程
熱門電子書
WordPress教程
寶塔面板教程
CSS教程
Shopify教程
導航
程序頻道
推廣頻道
網(wǎng)賺頻道
人物頻道
網(wǎng)站程序
網(wǎng)頁制作
云計算
服務器
CMS
論壇
網(wǎng)店
虛擬主機
cPanel
網(wǎng)址導航
WIKI使用導航
WIKI首頁
最新資訊
網(wǎng)站程序
站長人物
頁面分類
使用幫助
編輯測試
創(chuàng)建條目
網(wǎng)站地圖
站長百科導航
站長百科
主機偵探
IDCtalk云說
跨境電商導航
WordPress啦
站長專題
網(wǎng)站推廣
網(wǎng)站程序
網(wǎng)站賺錢
虛擬主機
cPanel
網(wǎng)址導航專題
云計算
微博營銷
虛擬主機管理系統(tǒng)
開放平臺
WIKI程序與應用
美國十大主機
編輯“
WordPress:Writing a Plugin
”
人物百科
|
營銷百科
|
網(wǎng)賺百科
|
站長工具
|
網(wǎng)站程序
|
域名主機
|
互聯(lián)網(wǎng)公司
|
分類索引
跳轉(zhuǎn)至:
導航
、?
搜索
警告:
您沒有登錄。如果您做出任意編輯,您的IP地址將會公開可見。如果您
登錄
或
創(chuàng)建
一個賬戶,您的編輯將歸屬于您的用戶名,且將享受其他好處。
因存在沖突的中間編輯,本編輯不能撤銷。
反垃圾檢查。
不要
加入這個!
<span style="border:1px solid #000; text-align:center; float:right; padding:6px;"><strong>導航:</strong> [[WordPress:WordPress文檔|上一級]] | [[WordPress]] | {{Template:WordPress導航}}</span> <div style="clear:both;"></div> = 介紹 = WordPress 1.2版本之前,如果你想要修改WordPress行為,你必須編輯(或者 "hack") WordPress 源代碼。盡管如此,在更多的現(xiàn)行WordPress版本中 ,你可以通過使用[[WordPress:Plugins|插件]]很容易的修改添加核心功能?;镜牟寮Y構的想法是保持WordPress核心相關內(nèi)容的簡潔,但是富有靈活性,足以使各個輸入輸出方面可以通過插件來修改。下面是定義: ;WordPress 插件 : WordPress 插件是一個程序,或者是一組或更多函數(shù),由PHP腳本語言編寫,添加某種特殊的功能或者服務到WordPress weblog,使用接入點和WordPress [[WordPress:Plugin API|Plugin Application Program Interface (API)]] 提供的方法,可以與weblog很好的結合在一起。 如果你發(fā)現(xiàn)你希望WordPress能擁有一些新的或者改良的功能,第一件事就是搜索各種插件庫(你可以從 [[WordPress:Plugins|插件]]文章中了解),然后看是否某人已經(jīng)創(chuàng)建了這樣的適合你的需要的插件。如果沒有,本文將指導你如何創(chuàng)建你自己的插件的過程。 本文假設你已經(jīng)熟悉基本的WordPress功能以及 PHP編程。 == 資源 == * 有很多插件開發(fā)者的的全面的文章列表和資源,[[WordPress:Plugin Resources|插件資源]]中包括有關編寫插件的外部文章以及關于特別話題的文章。 * 另外一個了解有關插件的好方法是看寫的好的插件的PHP 源代碼,如 [[WordPress:Plugins#Default Plugins|Hello Dolly]], 一個分布式插件。 * 一旦你寫了插件,閱讀[[WordPress:Plugin Submission and Promotion|插件提交和宣傳]]來學習如何讓它更廣泛的散布開來。 = 創(chuàng)建插件 = 本部分進入你需要遵守的幾個步驟,和一些考慮什么時候建立一個結構良好的 WordPress插件。 == 名字,文件和位置 == === 插件名字 === 創(chuàng)建插件的第一個任務是想出插件要做什么,然后起一個(希望是唯一的)名字。 查看[[WordPress:Plugins|插件]] 和其他的相關庫,驗證你的名字是唯一的;你也可以使用Google搜索。 多數(shù)插件開發(fā)者選擇使用能描述插件功能的那個名字; 如,一個聯(lián)系到天氣的插件可能含有單詞"weather"在名字中。名字可以是好幾個詞。 === 插件文件 === 下一步是創(chuàng)建PHP文件,文件名由你選擇的插件名衍生而來。如,如果你的插件叫做"Fabulous Functionality",你可以把你的PHP文件起名為 <tt>fabfunc.php</tt>。試著取一個唯一的名字。人們安裝你的插件的時候會把這個PHP文件放到WordPress插件目錄中,<tt>wp-content/plugins/</tt>,所以沒有兩個不同的在使用的插件擁有相同的PHP文件名。 另外一個操作是把你的插件分成幾個文件,你的插件至少要有一個PHP 文件,它可以包含JavaScript文件,CSS文件,圖片文件和語言文件等等。如果有幾種文件選擇了唯一的文件夾和主PHP文件名字,如<tt>fabfunc</tt> 和 <tt>fabfunc.php</tt>,就把所有的插件文件放到這個目錄下,然后告訴你的插件用戶安裝整個目錄到<tt>wp-content/plugins/</tt>下。 在這個文章的其余部分,"插件PHP文件"引用了主插件PHP文件,可以在 <tt>wp-content/plugins/</tt> 或者一個子目錄下 === 自述文件 === 如果你想在http://wordpress.org/extend/plugins/上建立一個插件主機,你還需要用標準格式創(chuàng)建<tt>readme.txt</tt>文件,把它放到你的插件中去。參見 http://wordpress.org/extend/plugins/about/readme.txt 獲得這格式的描述. === 主頁 === 創(chuàng)建一個網(wǎng)頁來作為你的插件的主頁也是非常有用的。這個頁面可以描述如何安裝插件,它可以做些什么,兼容WordPress 的哪個版本,版本更替的時候你的插件做出了哪些改動,如何使用插件等等。 == 文件標題 == 現(xiàn)在開始在你的插件的主PHP文件中添加信息。 === 標準插件信息 === 插件主PHP文件的頂部必須包含一個標準插件信息標題。這個標題讓WordPress 識別你的插件存在,添加到插件管理界面以便激活,載入,運行; 沒有標題,你的插件將不會被激活也不會運行,如下是標題格式: <pre> <?php /* Plugin Name: Name Of The Plugin Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates Description: A brief description of the plugin. Version: The plugin's Version Number, e.g.: 1.0 Author: Name Of The Plugin Author Author URI: http://URI_Of_The_Plugin_Author */ ?> </pre> WordPress需要用來識別你的插件的最小信息是Plugin Name這行,其他信息(如果出現(xiàn)的話) 將用來創(chuàng)建插件管理界面上的插件表格。這些行的順序并不重要。 === 許可 === 根據(jù)帶有許可信息這個標準標題是個慣例。多數(shù)插件使用WordPress 使用的[http://www.gnu.org/copyleft/gpl.html GPL] 許可,或者是一個 [http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses compatible with the GPL]的許可。簡要說明下GPL許可,在你的插件中添加如下幾行: <pre> <?php /* Copyright YEAR PLUGIN_AUTHOR_NAME (email : PLUGIN AUTHOR 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 copy 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 */ ?> </pre> == 規(guī)劃你的插件 == 現(xiàn)在是該讓你的插件做些什么的時候了。這個部分包含了一些一般的關于插件開發(fā)的思想,描述了如何完成你的插件需要完成的幾個任務。 === WordPress 插件 Hooks === 很多插件通過連接一個或者多個的WordPress 插件 "hooks"來完成它們的目標。 插件hooks的工作方式是在WordPress運行的時候,在各個不同的時候,WordPress檢查是否有插件在那時有注冊過的函數(shù)在此刻運行,如果有的話,函數(shù)運行。三個函數(shù)更改WordPress的默認行為。 例如,在WordPress添加文章標題到瀏覽器輸出的時候,首先檢查是否有任何插件為"filter"hook注冊了一個函數(shù)叫做"the_title"。如果有,標題文字會被每個注冊函數(shù)按順序傳遞,最終結果就是打印出來的結果。這樣,如果你的插件需要添加一些信息到打印標題,它可以注冊一個"the_title" filter函數(shù). 另一個例子是"action" hook,叫做"wp_footer"。在WordPress生成的HTML頁面的底部,它檢查看是否某個插件已經(jīng)為 "wp_footer" action hook注冊函數(shù),然后依次運行。 你可以了解更多關于如何為filter 和 action hooks注冊函數(shù),什么插件hooks在WordPress和在[[WordPress:Plugin API|插件API]]中可用。如果你在WordPress代碼中發(fā)現(xiàn)一個你想使用action或者filter的地方,但是WordPress沒有,你可以建議使用新的hooks (建議通常都會被采納); 如何建議參見[[WordPress:Reporting Bugs|提交錯誤]]。 === 模板標簽 === 另外一種用插件添加WordPress功能的方法是通過建立自定義 [[WordPress:Template Tags|模板標簽]]。有人想使用你的插件添加這些 "標簽"到他們的主題,邊欄,文章目錄或者其他任何合適的地方。例如,添加地理標簽到文章中的插件,可以為邊欄定義一個叫做<tt>geotag_list_states()</tt>的模板標簽函數(shù),列出所有的有關國家,并帶有國家歸檔頁面的鏈接。 想要定義一個模板標簽,需要簡單的寫一個PHP 函數(shù)并為插件用戶在插件主頁或者是插件PHP主文件中寫下資料說明。在給函數(shù)做資料說明時,給出一個具體需要加入什么到主題文件中以使用函數(shù)的例子是個不錯的想法包括 <tt><?php</tt> 和 <tt>?></tt>. ===保持插件數(shù)據(jù)到數(shù)據(jù)庫=== 大多數(shù)插件需要從站長或者blog用戶得到一些信息并保存在sessions中,為了在它的filter 函數(shù), action 函數(shù)和模板函數(shù)中使用。這個信息必須保存在WordPress 數(shù)據(jù)庫中,為了在sessions中可以持久穩(wěn)定。有兩種基本方法可以保存插件數(shù)據(jù)到數(shù)據(jù)庫中: # 使用WordPress "操作"機制(下有描述)。這個方法適合儲存相關的小量靜態(tài)的指定的數(shù)據(jù) – 那種你希望在第一次設置插件時站長輸入的,今后幾乎不會更改的數(shù)據(jù)。 # 創(chuàng)建一個新的自定義的數(shù)據(jù)庫表格。這種方法適合聯(lián)合單獨的文章,頁面,附件或者評論的數(shù)據(jù)—一種隨著時間而增加的,沒有單獨的名字的數(shù)據(jù)。參見 [[WordPress:Creating Tables with Plugins|創(chuàng)建插件表格]]. === WordPress 操作機制=== 參見[[WordPress:Creating Options Pages|創(chuàng)建操作頁面]] 得到關于如何創(chuàng)建自動為你保存操作的頁面的信息。 WordPress有一個保存,更新,重新得到個體, 制定的數(shù)據(jù)("操作")機制,在 WordPress 數(shù)據(jù)庫中。操作值可以是字符串,數(shù)組或者是PHP對象(它們將被 "連載",或者在存儲前轉(zhuǎn)變?yōu)樽址?,在重新得到個體時反連載)。操作名字是字符串,它們必須是唯一的,這樣它們不會與其他 WordPress或者是插件起沖突。 這里是你的插件可以用來進入WordPress操作的主要函數(shù)。 <pre> add_option($name, $value, $description, $autoload); </pre> : 創(chuàng)建一個新選項;如果選項存在就什么都不做 ;$name: Required (string). 將被添加的選項名字 ;$value: Optional (string), 默認為空的字符串。 將被存儲的選項值 ;$description: Optional (string), 默認為空的字符串。選項的描述,被放在wordpress數(shù)據(jù)庫中以防某些人瀏覽數(shù)據(jù)庫去看選項在哪。 ;$autoload: 選項,默認為'yes' (enum: 'yes' or 'no').如果設置為'yes',那么設置被<tt>get_alloptions</tt>函數(shù)自動檢索。 <pre> get_option($option); </pre> : 從數(shù)據(jù)庫中檢索一個選項值 ;$option: Required (string). 你想要返回的選項值的選項的名稱。你能夠找到被安裝在[[WordPress:Option Reference|相關選項]]中的一列默認選項 <pre> update_option($option_name, $newvalue); </pre> : 在數(shù)據(jù)庫里更新或者創(chuàng)建一個選項值(注:如果你不想使用<tt>$description</tt> 或者 <tt>$autoload</tt>參數(shù),<tt>add_option</tt>就沒必要被訪問。) ;$option_name: Required (string). 選項名稱更新。 ;$newvalue: Required. 為選項賦予新的值。 === 管理面板 === 假設你的插件有一些操作存儲在WordPress數(shù)據(jù)庫中 (參見上面的部分),你也許希望有一個管理面板,允許你的插件用戶來查看和編輯操作。方法可以在 [[WordPress:Adding Administration Menus|添加管理目錄]]中找到。 == 讓你的插件國際化 == 一旦你插件的程序完成了,另一個需要考慮的是(假設你打算發(fā)布你的插件) ''國際化''. 國際化是建立軟件的一個過程,這樣它才可以''本地化'' ;本地化是翻譯軟件的顯示文本為其他語言。WordPress是全世界使用的,所以它有國際化和本地化版本,包括本地化的插件。想要知道關于WordPress的 GNU gettext的本地化使用,參見[[WordPress:Translating WordPress]]. 強力推薦你國際化你的插件,這樣來自不同國家的用戶,可以本地化插件,過程如下: * 給插件選擇一個翻譯"文本區(qū)域"名字。這通常和你的插件文件名字一樣(除了 <tt>.php</tt>), 而且必須是用戶安裝過的插件中唯一的。 * 不論在哪里插件使用的顯示給用戶的文本(即"消息"), 使用一個或者兩個 WordPress gettext 函數(shù)把它們包圍起來。注意在插件中,你需要使用第二種方法,你選擇的翻譯文本區(qū)域名字中的傳遞,不像WordPress核心(留下 <tt>$domain</tt> 這部分空白). ; <tt>__($message, $domain)</tt> :使用現(xiàn)有本地<tt>$domain</tt>翻譯 <tt>$message</tt>。換行你將要用來用這個函數(shù)計算的文字字符串。 ; <tt>_e($message, $domain)</tt> : 使用現(xiàn)有本地<tt>$domain</tt>翻譯 <tt>$message</tt>, 然后在屏幕上顯示出來,給你使用這個函數(shù)直接顯示出的文本字符串換行。 * 創(chuàng)建一個POT文件(翻譯目錄列出了所有的可以翻譯的信息),隨著你的插件分發(fā)出去。用戶將需要把他們的翻譯過的MO文件放在你的插件的PHP文件的同一目錄下,命名為<tt>domain-ll_CC.mo</tt>,那里<tt>ll_CC</tt>是本地文件的名字。參見[[WordPress:Translating WordPress|翻譯WordPress]]以獲得關于POT文件,MO文件和本地文件的信息。 * 通過在調(diào)用gettext函數(shù)之前調(diào)用<tt>load_plugin_textdomain</tt>為現(xiàn)有本地文件和你的文本區(qū)域文件載入翻譯,在session中越晚越好,(因為一些多語言插件載入時改變了本地文件)。一個可能的辦法是定義一個初始化函數(shù),在所有插件函數(shù)之前調(diào)用,如,假設你的文本區(qū)域是"fabfunc": <pre> $fabfunc_domain = 'fabfunc'; $fabfunc_is_setup = 0; function fabfunc_setup() { global $fabfunc_domain, $fabfunc_is_setup; if($fabfunc_is_setup) { return; } load_plugin_textdomain($fabfunc_domain, 'wp-content/plugins'); } </pre> If your plugin is in its own subdirectory, append that to the second argument of <tt>load_plugin_textdomain</tt> 如果你閱讀了這個部分因為你想要國際化一個主題,你大體上可以按照上面的步驟來,除非: * MO文件在主題目錄中(與style.css同樣的位置). * MO 文件命名為<tt>ll_CC.mo</tt>, <tt>ll_CC</tt>是本地文件名(這個域不是文件名字的一部分). * 想要載入文本域,加入如下代碼(在某個PHP 溢出,如果需要的話) 到你的主題的functions.php文件: <pre> load_theme_textdomain('your_domain'); </pre> = 插件開發(fā)建議 = 最后一部分包括一些關于插件開發(fā)的建議。 * 插件代碼應該遵循[[WordPress:WordPress Coding Standards| WordPress編碼標準]]。請參照[[WordPress:Inline Documentation|內(nèi)嵌文檔]]標準。 * 所有的插件中的函數(shù)需要有唯一的名字,因為這個原因,在所有插件函數(shù)中使用唯一的函數(shù)名字前綴是個很好的主意。另一個可能性是在類中定義你的插件函數(shù)(也需要有唯一名字). * 不要把WordPress數(shù)據(jù)庫表格前綴(通常是"wp_")放入你的插件中。確認使用不同的<tt>$wpdb->前綴</tt>來代替。 * 數(shù)據(jù)庫閱讀很簡單但是寫確很難,數(shù)據(jù)庫是非常善于取數(shù)據(jù)給你,而且這些操作(通常是)如閃電般迅速。在數(shù)據(jù)庫中做改動,卻是一個復雜的多的過程,很難。所以試著最小化<em>寫入</em>的數(shù)量。首先在你的代碼中準備好一切,這樣你只需要選擇那些你需要的寫操作。 * 只選擇你需要的。盡管數(shù)據(jù)庫取數(shù)據(jù)非???,你需要試著減少數(shù)據(jù)庫的負載,通過只選擇你需要的數(shù)據(jù)。如果你需要知道一個表格有多少行,不要<tt>SELECT * FROM</tt>,因為所有行中的所有數(shù)據(jù)都會被牽扯到,浪費內(nèi)存。這樣,如果你只需要插件中的post_id 和post_author,只要<tt>SELECT</tt>那些特定的區(qū)域,來減小數(shù)據(jù)庫負載。記住: 大量的其他進程可能同時需要使用數(shù)據(jù)庫。數(shù)據(jù)庫和服務器每個都有大量的資源供這些進程使用。了解如何減小你的插件需要的資源會保證你的插件不會是被人說成濫用資源的哪種。 = 外部資源 = * [http://amiworks.co.in/talk/simplified-ajax-for-wordpress-plugin-developers-using-jquery/ 為WordPress插件開發(fā)人員使用的Jquery的簡單化AJAX](10APR08) * [http://www.rafaeldohms.com.br/2008/03/10/desenvolvendo-plugins-para-wordpress/pt/ "Desenvolvendo Plugins para WordPress" by Rafael Dohms (巴西語和葡萄牙語)] (10MAR08) * [http://www.devlounge.net/extras/how-to-write-a-wordpress-plugin 12 part "如何寫Wordpress 插件" at DevLounge.net] ,來自 [http://ronalfy.com Ronald Huereca] ([http://www.devlounge.net/publik/Devlounge%20-%20How%20to%20Write%20a%20Wordpress%20Plugin.pdf PDF]) * [http://ditio.net/2007/08/09/how-to-create-wordpress-plugin-from-a-scratch/ 如何創(chuàng)建WordPress插件] (9AUG07) * [http://www.devlounge.net/articles/using-ajax-with-your-wordpress-plugin在 your WordPress 插件中使用AJAX], DevLounce.net上也有 (25MAY07) * [http://asymptomatic.net/2005/02/22/1328/how-to-write-a-simple-wordpress-plugin/ "如何寫一個簡單的WordPress插件" asymptomatic.net] (22FEB05)
摘要:
請注意,您對站長百科的所有貢獻都可能被其他貢獻者編輯,修改或刪除。如果您不希望您的文字被任意修改和再散布,請不要提交。
您同時也要向我們保證您所提交的內(nèi)容是您自己所作,或得自一個不受版權保護或相似自由的來源(參閱
Wordpress-mediawiki:版權
的細節(jié))。
未經(jīng)許可,請勿提交受版權保護的作品!
取消
編輯幫助
(在新窗口中打開)
本頁使用的模板:
模板:WordPress導航
(
查看源代碼
)(受保護)
取自“
http://kktzf.com.cn/wiki/WordPress:Writing_a_Plugin
”