1.咱們爲何要建立一個插件?php
2.你但願你的插件具備什麼功能?web
儘管咱們在梳理開發流程中已經提到了如何建立一個插件,可是咱們仍是要再說一次,以防有些讀者沒有看到。redis
1.打開WordPress安裝目錄下的wp-content
目錄。網絡
2.打開plugins
目錄。svg
3.建立一個新目錄並在插件後命名(例如plugin-name
)。wordpress
4.打開新插件的目錄。函數
5.建立一個新的PHP文件(例如,在插件後命名此文件也很好plugin-name.php
)。佈局
就像下面的示例同樣,你必須在你建立的主插件文件的開頭加上一段doc
註釋來告訴wordpress這是個插件,固然也能夠加上做者,郵箱等信息,下面只是簡單示例,詳細能夠在咱們梳理流程的那邊博文/或者官網中看到。post
//wp-content/plugin-name/plugin-name.php <?php /** * Plugin Name: 插件名稱 */ function do_something_else() { //.....你的代碼 }
還記得咱們在第一篇梳理中提到的三個基礎插件鉤子麼?this
1.register_activation_hook //啓用插件時觸發的鉤子
2.register_deactivation_hook//禁用插件時觸發的鉤子
3.register_uninstall_hook//刪除插件時觸發的鉤子
咱們能夠經過這三個鉤子函數來作一下一些前置/後置的處理,好比說插件被啓用時建立一個自定義數據表,初始化一些配置,禁用時恢復初始化設置,刪除時刪除自定義的數據表。
這裏咱們先不展開來說咱們在講OptionApi
的時候再講這個。
準備工做都已經作好了,咱們如今開始正式的開發。咱們假設說咱們要作的是一個額外的內容管理插件。那咱們如今想要在後臺建立一個定製內容管理
菜單,該怎麼作呢?
wordpress向咱們提供了一個add_menu_page
的函數:
/** //咱們先看一下函數的參數 add_menu_page( string $page_title, //頁面標題 string $menu_title, //菜單名稱 string $capability, //權限級別 string $menu_slug, //菜單標識 惟一 callable $function = '', //回調函數 其實就是點擊這個菜單後觸發的函數 咱們能夠返回一個頁面 string $icon_url = '', //圖標,能夠爲空 int $position = null //位置 決定了菜單應該插入在第幾個 ); **/
那咱們應該怎麼使用呢?
for-example :
你的wp-content/plugin-name/plugin-name.php
文件,看起來應該像這樣:
<?php /* Plugin Name: 定製內容管理 Plugin URI: http://ergou.fun Description: 內容管理模塊(自定義內容非posts) Version: 1.0 Author: ergou Author URI: http://ergou.fun Copyright 2019 ergou (email : 531432012@qq.com) 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 */ /** 第1步:建立自定義菜單的函數**/ function ergou_cms_plugin_menu() { add_menu_page('定製內容管理', '內容管理', 'manage_options', 'ergou-cms-manager', 'ergou_cms_plugin_options', '', 7); } /** 第2步:將函數註冊到鉤子中 */ add_action('admin_menu', 'ergou_cms_plugin_menu'); /** 第3步:定義選項被點擊時打開的頁面 */ function ergou_cms_plugin_options() { if (!current_user_can('manage_options')) { wp_die(__('You do not have sufficient permissions to access this page.')); } //include_once(plugin_dir_path(__FILE__) . 'detail/index.php'); //也能夠直接返回HTML,不過我建議是額外放一個文件,這樣之後維護起來好處理 //你能夠直接 echo "hello world" echo "Hello World"; wp_die(); }
咱們如今回到咱們的後臺管理頁面點擊插件管理
你會發現多了一個,定製內容管理的菜單,點擊啓用。菜單就會增長在左側頂級菜單裏。點擊定製內容管理
菜單,頁面輸出了"Hello World"
。至此,咱們算是完成了第一步。
本篇內容就是這些。That’s all .Thank you .