首頁 > CMS教程 > &#&按 > WordPress插件樣板第2部分:開發插件

WordPress插件樣板第2部分:開發插件

William Shakespeare
發布: 2025-02-16 11:23:11
原創
277 人瀏覽過

WordPress插件樣板第2部分:開發插件

在我的系列的第一部分,WordPress插件樣板的簡介中,我們研究瞭如何在樣板中組織代碼。為了繼續本系列,我們將應用我們之前學到的知識來構建真正的工作插件。我們將看看我們可以使用樣板代碼來啟動和運行插件的速度,並儘可能少。

>

>本文將重點介紹創建和激活插件,以及開發插件的管理功能。為了遵循本教程,您需要對PHP和WordPress的基本了解,並且對WordPress插件API具有工作知識。

鑰匙要點

    >使用WordPress插件樣板通過結構化的,有組織的方法加快開發過程,確保遵循最佳實踐。
  • >通過使用設置API添加選項頁面來自定義插件,以允許用戶修改設置,例如通知的顯示位置以及後來考慮過時的幾天。
  • >通過註冊設置,添加設置字段以及使用樣板中提供的類和方法來處理這些設置值的保存和檢索。
  • >通過為選項頁面創建一個乾淨,用戶友好的界面來優化插件的面向式功能,並確保正確保存和顯示設置。
  • >
  • >計劃進一步增強,例如代碼清理,國際化和更有選擇性的應用程序邏輯,以完善插件的效率和用戶體驗。
  • 關於插件的
  • >
  • >我們將開發一個簡單的插件,該插件將顯示自上次更新特定帖子以來的天數。我們還將為插件提供幾個簡單的自定義,從而允許用戶選擇特定數量,然後將其視為過時的帖子,以及在帖子內容中的通知位置。 >
  • 準備樣板

>正如第一篇文章所述,我們可以下載樣板的新副本,進行搜索並自行更換,或者我們可以使用非正式的WordPress插件樣板生成器來加快流程。讓我們將發電機用於插件。

>

>前往WordPress插件生成器網站,並用適當的值填寫表單。讓我們稱我們的插件為“過時的通知”。這是一個示例表格,其中填充了字段。

>

>我正在為鏈接到官方存儲庫的插件URL使用一個假想的URL。不必太擔心這些東西,因為我們始終可以在插件標題中對其進行修改。

>

單擊“構建”按鈕,您應該獲得WordPress插件板的不錯的自定義副本。

>安裝和激活插件

生成的郵政編碼將包含兩個預期的目錄,資產和中繼。我們不會在安裝插件時使用Symlink路由,因此請在存檔中提取中繼文件夾並將其複製到WP-CONTENT/插件目錄中。

>

>我們仍然需要適當地重命名以避免與其他插件的命名衝突,因此我們將把Trunk Directory重命名為過時的通用。

如果您現在轉到WP-Admin中的“已安裝插件”部分,則可以肯定的是,您會看到插件已在已安裝但尚未激活的插件列表中。插件樣板生成器對插件描述沒有更改任何內容,因此,如果要更改它,我們可以簡單地在主插件文件中編輯描述,在我們的情況下,eutated-notice.php。

>單擊“激活”以激活閃亮的新插件。您的WordPress網站上什麼都不會改變,因此請不要擔心激活插件後什麼都看不到。

> WordPress插件樣板第2部分:開發插件添加選項頁

>插件開發人員通常為用戶提供一種自定義插件設置的方法。這可以通過使用WordPress提供的設置API來實現。讓我們看看如何將自己的設置集成到插件中。

> 簡而言之,我們將允許用戶在帖子內容之前或郵政內容之後選擇通知出現的位置。就閾值的天數而言,用戶可以設置要過時的帖子之前的天數。使用這些信息,我們將動態更改通知的類別,以便我們可以與仍然被認為是新鮮的帖子進行不同的樣式。

>

讓我們開始添加一個插件的選項頁面。

>

>在管理文件夾中打開class-of-notice-admin.php。我們需要修改此類,以允許我們為插件註冊設置頁面。將此公共方法添加到班級結束時。

>

>要注意的一件事是,由於我們正在使用類來定義鉤子,因此我們需要以數組的形式傳遞一個數組(,>我們還沒有完成!如我們所見,add_options_page需要一個有效的回調函數,我們尚未在OUTED_NOTICE_ADMIN類中定義。讓我們加入它。這應該很簡單,因為我們將使用我們的管理員/partials文件夾中包含的提供的過時的notice-admin-display.php。因此,我們為回調功能所要做的就是包含該文件。 >
<span>/**
</span><span>	 * Add an options page under the Settings submenu
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function add_options_page() {
</span>	
		<span>$this->plugin_screen_hook_suffix = add_options_page(
</span>			<span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span>			<span>__( 'Outdated Notice', 'outdated-notice' ),
</span>			<span>'manage_options',
</span>			<span>$this->plugin_name,
</span>			<span>array( $this, 'display_options_page' )
</span>		<span>);
</span>	
	<span>}</span>
登入後複製
登入後複製
登入後複製

應該做到的。我們現在需要做的最後一件事是使用樣板中提供的加載程序類正確加載它。在Include文件夾中打開您的類列出的notice.php,並添加我們在define_admin_hooks方法內定義的其他掛鉤。在我們的選項頁面上包含的適當操作掛鉤是admin_menu,所以讓我們添加它。

>
<span>/**
</span><span>	 * Render the options page for plugin
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function display_options_page() {
</span>		<span>include_once 'partials/outdated-notice-admin-display.php';
</span>	<span>}</span>
登入後複製
登入後複製
登入後複製

>您現在應該在設置下查看附加的“過時通知”子菜單。您可以通過訪問URL http:// /wp-admin/options-general.php?page=Outdated-notice。

>現在是一個空白頁,所以讓我們開始使用正確的標記填充部分文件。

註冊,保存和檢索設置值

WordPress codex上的設置API頁面提供了一個很好的解釋,以說明如何註冊我們自己的設置,包括在選項頁面上顯示它們。

這是我們將要做的事情的細分:

用樣板加載器註冊鉤子

    註冊設置部分
  1. 註冊兩個設置字段(閾值天數和文本位置)
  2. 註冊兩個設置
  3. 填充選項頁面
  4. 保存並重新播放顯示字段。
  5. >將鉤子註冊到樣板加載器
>讓我們逐一遍歷所有步驟。

>

>要註冊設置部分,我們將需要使用register_setting函數。適當的掛鉤以初始化該函數是admin_Init。因此,首先,我們將在樣板加載器中添加另一個鉤子,以在我們的主樣本類的Define_admin_hooks方法中註冊我們的設置。

為了使事情變得更簡單,並為我們的選項名稱提供了基本的命名空間,我們將在此類的頂部添加另一個私人變量。將此摘要放在Outed_notice_admin類的頂部。

從現在開始,我們將將此值預先為與我們的選項相關的任何事物。

>
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
登入後複製
登入後複製
登入後複製
接下來是實際註冊“設置”部分,設置字段和各個設置。再次打開OUTED_NOTICE_ADMIN類,然後添加公共方法寄存器。

註冊設置部分

<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
登入後複製
登入後複製
登入後複製
>在public Register_setting方法中,我們將註冊設置部分。我不會對各種功能和API進行太多的研究,因為法典已經提供了足夠的信息來開始。由於我們的插件設置相對簡單,我們將僅註冊一個部分。

這個片段將允許我們使用add_settings_section函數為我們的選項頁面註冊一個“常規”部分。

<span>/**
</span><span>	 * Add an options page under the Settings submenu
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function add_options_page() {
</span>	
		<span>$this->plugin_screen_hook_suffix = add_options_page(
</span>			<span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span>			<span>__( 'Outdated Notice', 'outdated-notice' ),
</span>			<span>'manage_options',
</span>			<span>$this->plugin_name,
</span>			<span>array( $this, 'display_options_page' )
</span>		<span>);
</span>	
	<span>}</span>
登入後複製
登入後複製
登入後複製

請注意,我們正在用變量$ option_name預列出我們的部分名稱,以防止與其他插件發生衝突。回調可用於提供有關我們部分的其他信息,這正是我們想要的。

>我們將添加另一種公共方法,Outdated_notice_general_cb,該方法將呼應有關本節的基本信息。

<span>/**
</span><span>	 * Render the options page for plugin
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function display_options_page() {
</span>		<span>include_once 'partials/outdated-notice-admin-display.php';
</span>	<span>}</span>
登入後複製
登入後複製
登入後複製
註冊兩個設置字段(閾值天數和文本位置)

我們需要使用的設置API的下一部分是在選項頁面上註冊要渲染的實際字段。可以使用add_settings_field函數來實現這一點。

>我們將使用無線電按鈕進行文本位置配置。這是通過將此代碼添加到我們擁有的register_setting函數中來完成的。

>

我們需要確保Add_settings_field的第五個參數將指向我們之前註冊的正確設置部分,否則我們可能在我們的選項頁面上看不到字段。 >
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
登入後複製
登入後複製
登入後複製
>這還尚未完成。我們需要提供回調功能,以呈現我們的無線電按鈕的實際標記。在我們的OUTED_NOTICE_POINTION_CB函數中,我們需要包括此代碼塊:

可以使用普通文本輸入來配置一天閾值的第二個選項。因此,我們將註冊另一個設置字段:

<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
登入後複製
登入後複製
登入後複製
>再次,我們還需要提供一個回調函數,該函數將呈現我們的文本字段。

註冊設置
<span>/**
</span><span>	 * The options name to be used in this plugin
</span><span>	 *
</span><span>	 * <span>@since  	1.0.0
</span></span><span>	 * <span>@access 	private
</span></span><span>	 * <span>@var  	<span>string</span> 		$option_name 	Option name of this plugin
</span></span><span>	 */
</span>	<span>private $option_name = 'outdated_notice';</span>
登入後複製
登入後複製
最後,我們需要註冊要使用的選項名稱,以便可以在WordPress中識別。由於我們使用了兩個不同的選項名稱,即OUTED_NOTICE_POINTION和OUTED_NOTICE_DAY,因此我們將使用register_setting函數進行註冊。 >
<span>// Add a General section
</span>	<span>add_settings_section(
</span>		<span>$this->option_name . '_general',
</span>		<span>__( 'General', 'outdated-notice' ),
</span>		<span>array( $this, $this->option_name . '_general_cb' ),
</span>		<span>$this->plugin_name
</span>	<span>);</span>
登入後複製
請注意,寄存器_setting函數的第三個參數是消毒回調。儘管它是可選的,但要確保在保存到數據庫之前對輸入值進行消毒總是很有用的。

對於日期消費,我們將使用內置的PHP功能,即在我們的情況下足夠。至於文本通知位置,我們將定義我們自己的消毒回調函數,這將僅允許將某些值保存到數據庫中。當處理僅限於特定值的選項時,這一點特別有用,例如在這種情況下,我們只接受兩個值之前和之後的值,因此我們的消毒回調將需要確保,如果值不是一個值這些,它不會被保存到數據庫中。

這是一個簡單的消毒回調函數,可以實現這一目標:>

<span>/**
</span><span>	 * Add an options page under the Settings submenu
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function add_options_page() {
</span>	
		<span>$this->plugin_screen_hook_suffix = add_options_page(
</span>			<span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span>			<span>__( 'Outdated Notice', 'outdated-notice' ),
</span>			<span>'manage_options',
</span>			<span>$this->plugin_name,
</span>			<span>array( $this, 'display_options_page' )
</span>		<span>);
</span>	
	<span>}</span>
登入後複製
登入後複製
登入後複製

填充選項頁面

在註冊所有相關設置之後,

>現在我們需要確保正確的頁面渲染器。由於我們正在使用WordPress的方式註冊我們的字段和設置,因此此任務特別簡單。

>

>打開admin/partials文件夾內的過時的notice-admin-display.php。 以下是我們可以根據我們之前註冊的設置渲染選項頁面的方式。 >

<span>/**
</span><span>	 * Render the options page for plugin
</span><span>	 *
</span><span>	 * <span>@since  1.0.0
</span></span><span>	 */
</span>	<span>public function display_options_page() {
</span>		<span>include_once 'partials/outdated-notice-admin-display.php';
</span>	<span>}</span>
登入後複製
登入後複製
登入後複製
>與do_settings_sections and settings_fields功能的簡單組合,您的選項頁面完全可以立即完成。

>讓我們休息一下,刷新選項頁面。

>

WordPress插件樣板第2部分:開發插件保存並重新填充字段

>

>嘗試填充一些值並保存表單。您應該收到“保存設置”的通知。但是沒有發生。讓我們嘗試對我們的兩個選項進行var_dump。將其放在相關功能中。

根據以下示例,我們應該從數據庫中獲取一些值:>
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
登入後複製
登入後複製
登入後複製

>這意味著我們的表單正常工作,因此唯一需要完成的操作是在文本字段中顯示當前值,並確保選中正確的廣播按鈕。

>讓我們首先處理收音機按鈕。作為快捷方式,我們將使用WordPress提供的檢查功能來標記先前選擇的值。我們的OUTED_NOTICE_POINTION_CB將需要一些修改。
<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>
登入後複製
登入後複製
登入後複製
>

這是回調的更新片段。

現在,每當我們更改任一字段的值時,它都會在選項頁面中正確反映。

進一步改進
<span>/**
</span><span>	 * The options name to be used in this plugin
</span><span>	 *
</span><span>	 * <span>@since  	1.0.0
</span></span><span>	 * <span>@access 	private
</span></span><span>	 * <span>@var  	<span>string</span> 		$option_name 	Option name of this plugin
</span></span><span>	 */
</span>	<span>private $option_name = 'outdated_notice';</span>
登入後複製
登入後複製

這絕不是完整的。我們始終可以改善此插件的管理功能。我能想到的一些事情是:

>

代碼清理 - WordPress插件樣板具有許多有用的功能,但是在我們的情況下,管理方面,CSS和JS加載是完全不必要的。我們隨時可以從我們的代碼庫中刪除它。

i18n(國際化)準備就緒 - 儘管我們在插件中廣泛使用__()和_e(),但我們並沒有真正完成實際的I18N過程。我不會在此處介紹此過程,因為該主題已經在SitePoint上進行了廣泛討論,例如在本文中。

>最佳選擇 - 由於我們的實施將應用於所有帖子,我們可以進一步優化它以應用於某個類別中的帖子,或其中包含特定標籤的帖子。
  • 可以從該GitHub存儲庫中查看完整的代碼。

    結論

    >我們通過註冊相關設置創建了一個帶有基本管理功能的插件,並為用戶創建一個選項頁面以自定義我們的插件。在使用WordPress插件樣板的時間相對較短的時間內,我們實現了這一目標而不損害代碼質量,但仍按照WordPress建議的最佳實踐。

    >請繼續關注本系列的下一部分,我們將在插件的公開面上進行公開面向帖子內容中的適當通知。

    經常詢問有關使用樣板開發WordPress插件的問題

    > WordPress插件樣板是什麼,為什麼要使用它?它提供了一個易於理解和使用的清晰,一致的結構。使用此樣板可以為您節省大量的時間和精力來設置插件的基本結構。它還可以確保您的插件遵循WordPress編碼標準和最佳實踐,這可以幫助防止錯誤和兼容性問題。

    >

    >我如何開始使用WordPress plugin Boilerplate?使用WordPress插件樣板,您首先需要從其GitHub存儲庫下載它。下載後,您可以重命名樣板的目錄和文件以匹配插件的名稱。然後,您可以通過在樣板的現有結構中添加自己的自定義功能來開始開發插件。

    >

    > wordpress插件blobin Boblein broilerplate的主要組件是什麼?

    主要組件。其中包括包含插件標頭和加載程序類的插件文件;包括包含核心插件類和其他功能相關文件的目錄;管理目錄,其中包含與插件特定功能有關的文件;和包含與插件的公共面向功能有關的文件的公共目錄。

    >

    >如何將自己的功能添加到WordPress插件樣板上?

    >

    WordPress插件樣板,您可以在包含目錄中創建新類。這些類應擴展樣板提供的基類。然後,您可以將自己的方法添加到這些類中以實現所需的功能。您還可以根據需要修改現有的類和方法。

    >如何處理WordPress插件樣板中的插件設置? >

    >如何在插件中添加Admin特定功能?

    以將管理特定功能添加到插件中,您可以使用WordPress插入式Blookin Boblelplate的管理目錄中提供的類和方法。該目錄包括用於創建管理頁面,添加設置字段和處理表單提交的類。

    >如何將面向公共的功能添加到我的插件中?

    以將公共面向公共功能添加到您的插件,您可以使用WordPress插件樣板的公共目錄中提供的類和方法。該目錄包括用於啟動腳本和样式的類,以及顯示面向公眾的內容。

    如何使用WordPress插入式插件國際化我的插件? >國際化。此類包括用於加載插件文本域的方法,該方法允許您的插件翻譯成不同的語言。

    >

    如何在插件中處理AJAX請求?

    >

    用於處理AJAX請求。這些類包括用於註冊AJAX操作,處理AJAX請求和發送AJAX響應的方法。

    >

    >在使用WordPress plubin Boblein blogin blogin Plate時,我如何調試我的插件?插件樣板可以通過多種方式完成。一種常見的方法是在wp-config.php文件中使用wp_debug常數。這將顯示PHP錯誤,通知和警告。您還可以使用可用於WordPress的各種調試插件,也可以使用PHP的內置錯誤記錄功能。

以上是WordPress插件樣板第2部分:開發插件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板