當前位置:名人名言大全網 - 端午節短信 - 如何開發壹個WordPress插件

如何開發壹個WordPress插件

在開始之前,我們需要註意三件事。

I .給插件起壹個個性化的名字。越個性化越好,以防和其他插件沖突。

二。在代碼中,妳必須包含註釋,不是為妳自己,也是為其他想修改妳代碼的人。

三。盡量使用最新版本的WordPress進行開發和測試。

插件名稱和插件結構

壹般來說,在wp-content\plugins目錄下創建壹個文件夾,文件夾名就是插件的名稱。我們插件的名字是“copyright_plugin”,文件結構如下。

\ WP-content \ plugins \ copyright _ plugin有copyright_plugin.php和readme.txt

這裏的readme.txt文件包含了插件的介紹和使用說明等壹些信息,主要是在提交到WordPress官網的時候使用。可以參考他們給的模板,還有插件截圖預覽的功能。妳需要補充圖片,但是我們現在正在練習,不需要提交到官網,所以暫時不涉及這些。

插件的核心

壹般來說,插件的核心是兩個功能,用來添加鉤子。

add_action ($hookname,$callbackfunction)

add_filter ($hookname,$callbackfunction)

這兩個方法非常重要,幾乎所有的插件都使用它們。

動作,我的理解是wordpress核心代碼預留的壹些特殊的入口點,或者是在執行某些事件時發生,比如文章發布或者訪客留言。

過濾器應該是wordpress執行時數據傳輸的過濾機制,比如將文章保存到數據庫的過程,或者將文章從數據庫中取出並呈現給瀏覽器的過程。

我們今天要做的插件要用濾鏡,因為在文章顯示在瀏覽器之前,我們需要在文章末尾加壹個字符通靈來顯示版權信息,後面添加菜單項的時候也需要使用動作。

插件概要信息

用文本編輯器打開copyright-plugin.php文件,並輸入以下信息:

& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)

/*

插件名稱:版權插件

插件URI:

描述:這個插件會在文章正文底部顯示壹行版權信息。

版本:1.0.0

作者:xcxc

作者URI:

許可證:GPL

*/

& gt

保存文件,然後登錄WordPress後臺,打開插件菜單。妳應該能看到這個插件,這個插件已經顯示在插件列表裏了,妳可以啟用這個插件試試,但是沒有效果,因為到目前為止,這個插件還沒有實現任何功能。

實現插件的功能

修改版權_插件. php

& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)

/*

插件名稱:版權插件

插件URI:

描述:這個插件會在文章正文底部顯示壹行版權信息。

版本:1.0.0

作者:xcxc

作者URI:

許可證:GPL

*/

/*這個插件會在文章正文底部顯示壹行版權信息*/

函數display_copyright() {

return " & ltp style = ' color:red ' & gt;本站所有文章均為原創,轉載請註明出處!& lt/p >;;

}

& gt

保存這個文件,然後打開正在使用的主題文件夾,打開index.php文件夾,找到get _ template _ part ('content ',get _ post _ format());並在下面添加以下代碼。

if(function _ exists(' display _ copyright '){

回聲顯示_版權();

}

Function_exists是判斷display_copyright函數是否存在,因為停用插件時在主題代碼中找不到這個函數,所以判斷壹下以防出錯。

然後在wordpress後臺啟用插件,再打開首頁看看效果!

此時,這段代碼應該勉強算是壹個插件。無奈,因為這個插件有問題,需要手動修改主題代碼。如果用戶改變了主題,妳需要在新的主題中再次修改代碼,這樣不好。

改進的插件

還記得我們之前說過的鉤子嗎?我們要開始用過濾鉤了!

代碼修改copyright_plugin.php如下:

& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)

/*

插件名稱:版權插件

插件URI:

描述:這個插件會在文章正文底部顯示壹行版權信息。

版本:1.0.0

作者:xcxc

作者URI:

許可證:GPL

*/

add_filter( 'the_content ',' display _ copyright ');

/*該函數在日誌文本的末尾添加壹條版權信息,並且只添加*/

功能顯示_版權($content){

if( is_home())

$content = $content。“& ltp style = ' color:red ' & gt;本站所有文章均為原創,轉載請註明出處!& lt/p >;;

返回$ content

}

& gt

看上面的代碼,其中_content是鉤子的名字,display_copyright是回調函數的名字。這樣只要啟用插件就可以實現功能,不需要修改主題。請刪除剛剛添加到index.php文件中的代碼,然後啟用插件來查看效果。顯示效果應該是壹樣的。無論妳怎麽改主題,版權信息都會自動顯示。

Is_home是判斷是否是主頁。

進壹步地

至此,壹個真正的插件完成了。但是這個插件直接把版權信息寫在代碼裏。如果用戶想自定義版權信息,還是不方便修改插件的源代碼,所以這個插件還是需要改進的。實際上,我們可以在WordPress後臺為插件添加單獨的菜單和頁面,用戶可以在這裏自定義和設置版權信息,信息可以保存在數據庫中。

先附上完整的代碼,後面會解釋。

& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)

/*

插件名稱:版權插件

插件URI:

描述:這個插件會在文章正文底部顯示壹行版權信息。

版本:1.0.0

作者:xcxc

作者URI:

許可證:GPL

*/

/*註冊插件激活時要調用的函數*/

register _ activation _ hook(_ _ FILE _ _,' display _ copyright _ install ');

/*註冊以停用插件時要調用的函數*/

register _ deactivation _ hook(_ _ FILE _ _,' display _ copyright _ remove ');

函數display_copyright_install()

/*在數據庫的wp_options表中添加壹條記錄,第二個參數是默認值*/

add _ option(" display _ copyright _ text "," & ltp style = ' color:red ' & gt;本站所有文章均為原創,轉載請註明出處!& lt/p >;,'','是');

}

函數display_copyright_remove() {

/*刪除wp_options表中的相應記錄*/

delete _ option(' display _ copyright _ text ');

}

if( is_admin() ) {

/*使用admin_menu掛鉤添加菜單*/

add_action('admin_menu ',' display _ copyright _ menu ');

}

函數display_copyright_menu() {

/* add_options_page( $page_title,$menu_title,$capability,$menu_slug,$ function);*/

/*頁面名稱、菜單名稱、訪問級別、菜單別名、點擊菜單時的回調函數(顯示設置頁面)*/

add_options_page('設置版權','版權菜單','管理員','顯示_版權','顯示_版權_ html _頁面');

}

函數display_copyright_html_page() {

& gt

& ltdiv & gt

& lth2 & gt設置版權& lt/H2 & gt;

& ltform method = " post " action = " options . PHP " & gt;

& lt?Php /*下面壹行代碼用於將表單內容保存到數據庫*/?& gt

& lt?PHP WP _ nonce _ field(' update-options ');?& gt

& ltp & gt

& lt文本區域

name="display_copyright_text "

id = " display _ copy _ text "

cols="40 "

rows="6 " >& lt?PHP echo get _ option(' display _ copyright _ text ');?& gt& lt/textarea & gt;

& lt/p & gt;

& ltp & gt

& ltinput type = " hidden " name = " action " value = " update "/& gt;

& ltinput type = " hidden " name = " page _ options " value = " display _ copyright _ text "/& gt;

& ltinput type = " submit " value = " Save " class = " button-primary "/& gt;

& lt/p & gt;

& lt/form & gt;

& lt/div & gt;

& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)

}

add_filter( 'the_content ',' display _ copyright ');

/*該函數在日誌文本的末尾添加壹條版權信息,並且只添加*/

功能顯示_版權($content){

if( is_home())

$content = $content。get _ option(' display _ copyright _ text ');

返回$ content

}

& gt

描述:

下面這段代碼本身是在插件啟用和禁用時調用的,評論裏已經詳細寫了。

/*註冊插件激活時要調用的函數*/

register _ activation _ hook(_ _ FILE _ _,' display _ copyright _ install ');

/*註冊以停用插件時要調用的函數*/

register _ deactivation _ hook(_ _ FILE _ _,' display _ copyright _ remove ');

函數display_copyright_install()

/*在數據庫的wp_options表中添加壹條記錄,第二個參數是默認值*/

add _ option(" display _ copyright _ text "," & ltp style = ' color:red ' & gt;本站所有文章均為原創,轉載請註明出處!& lt/p >;,'','是');

}

函數display_copyright_remove() {

/*刪除wp_options表中的相應記錄*/

delete _ option(' display _ copyright _ text ');

}

添加菜單和頁面的代碼如下:

if( is_admin() ) {

/*使用admin_menu掛鉤添加菜單*/

add_action('admin_menu ',' display _ copyright _ menu ');

}

函數display_copyright_menu() {

/* add_options_page( $page_title,$menu_title,$capability,$menu_slug,$ function);*/

/*頁面名稱、菜單名稱、訪問級別、菜單別名、點擊菜單時的回調函數(顯示設置頁面)*/

add_options_page('設置版權','版權菜單','管理員','顯示_版權','顯示_版權_ html _頁面');

}

此時,妳已經可以在後臺看到菜單項了,但是如果點開就會出錯,因為還沒有添加相應的頁面(如何自定義添加後臺菜單的位置)。

讓我們開始添加頁面。主要代碼如下:

函數display_copyright_html_page() {

& gt

& ltdiv & gt

& lth2 & gt設置版權& lt/H2 & gt;

& ltform method = " post " action = " options . PHP " & gt;

& lt?Php /*下面壹行代碼用於將表單內容保存到數據庫*/?& gt

& lt?PHP WP _ nonce _ field(' update-options ');?& gt

& ltp & gt

& lt文本區域

name="display_copyright_text "

id = " display _ copy _ text "

cols="40 "

rows="6 " >& lt?PHP echo get _ option(' display _ copyright _ text ');?& gt& lt/textarea & gt;

& lt/p & gt;

& ltp & gt

& ltinput type = " hidden " name = " action " value = " update "/& gt;

& ltinput type = " hidden " name = " page _ options " value = " display _ copyright _ text "/& gt;

& ltinput type = " submit " value = " Save " class = " button-primary "/& gt;

& lt/p & gt;

& lt/form & gt;

& lt/div & gt;

& lt?服務器端編程語言(Professional Hypertext Preprocessor的縮寫)

}

現在,單擊新添加的菜單,顯示壹個頁面,我們可以在其中設置版權信息文本。

還有以下代碼需要修改。

/*該函數在日誌文本的末尾添加壹條版權信息,並且只添加*/

功能顯示_版權($content){

if( is_home())

$content = $content。get _ option(' display _ copyright _ text ');

返回$ content

}

原來的靜態文本變成了動態文本。這種變化的原因是我們已經將數據保存在數據庫中,這裏我們想將數據從數據庫中取出。