WordPress插件容許你對原有的網站進行修改和加強功能,而沒必要修改WordPress的核心程序,本文就簡單介紹一下如何開發一個本身的Wordpress插件。php
全部的Wordpress插件都存放在網站的wp-contentplugins目錄下,每個插件佔用一個目錄。你首先要想好本身的插件的名字,而後創建一個屬於本身插件的目錄。程序員
一個好的習慣在是插件目錄下創建一個空的index.php,這個文件的做用的防止網站輸出這個目錄的文件。事實上不少程序員也這樣作了,你常常能夠看到網站目錄下有個30B的index.php,裏面只寫了一句:Silence is golden.數據庫
首先創建一個和插件目錄名相同的php文件,在文件頭添加一些標準插件信息:瀏覽器
<php /* Plugin Name: 插件名 Plugin URI: 插件的介紹或更新地址 Description: 插件描述 Version: 插件版本,例如 1.0 Author: 插件做者名稱 Author URI: 插件做者的連接 License: 許可證,如GPL2 */
例如:函數
<php /* Plugin Name: Codlr Plugin URI: http://codlr.com Description: Demo for codlr Version: 1.0 Author: Pnuts Author URI: http://pnuts.cc/ License: GPL2 */
建立好後,就能夠在Wordpress的後臺控制面板看到新增長的插件了:
網站
固然這樣插件目前尚未任何功能,咱們能夠嘗試增長一些功能。spa
WordPress的鉤子機制插件
要爲Wordpress插件增長功能,首先要了解一下Wordpress的鉤子機制。文章最前面就說過,Wordpress插件增長網站功能時不會修改Wordpress的核心代碼,這個正是靠鉤子來實現的:Wordpress對不一樣階段定義了不少鉤子,插件將自身的函數註冊到相關的鉤子上,當WordPress運行到某個階段,它會檢查當前階段是否有插件註冊了函數,若是是,那麼函數將被執行。code
例如,在WordPress在把文章的標題發送到瀏覽器前,會檢查是否有插件函數註冊了「the_title」的鉤子。若是是,標題文本將會傳送到註冊函數中,插件函數變能夠對標題內容進行修改,而函數的返回值最終將會被傳送給瀏覽器。圖片
要想在鉤子上掛載一個函數,須要使用add_action方法,關於add_action的定義是這樣的:
add_action( $tag, $function_to_add, $priority, $accepted_args ); ?>
其中$tag和$function_to_add是必選的,分別指定了鉤子的名字和掛載的函數。而$priority和$accepted_args爲可選參數,類型都爲整數。$priority用於指定與全部掛載函數的執行順序。數字越小,執行越早,具備相同優先級的函數在它們被添加到動做的順序執行,默認爲10。$accepted_args爲掛鉤函數所接受的參數數量,默認爲1。
下面給了一個簡單的例子,展現如何經過鉤子將標題中的英文字母所有轉換成大寫:
add_action('the_title', function($title) { return strtoupper($title); });
WordPress的鉤子不少,這裏不能一一介紹,在Wordpress的官方上有詳細的說明,惋惜沒有中文的:Plugin API/Action Reference。
WordPress的選項機制
WordPress的另外一個重要機制是它的選項機制,它容許插件將一些特定屬性保存在數據庫中(wp_options表),隨時能夠更新或查詢。它的使用方法很簡單:
//添加一個選項 add_option($name, $value, $deprecated, $autoload);
$name(必選)和$value(可選,默認爲空)爲字符串,分別表示選項的名字和值。$deprecated已通過時了,再也不被Wordpress使用了。$autoload(可選)能夠爲’yes’或’no’,默認爲’yes’,表示這個option是否會被get_alloptions函數自動檢索。
另外兩個函數分別用來或取和更新選項的:
//更新選項 update_option($option_name, $newvalue); //獲取選項 get_option($option);