>
>本文將重點介紹創(chuàng)建和激活插件,以及開發(fā)插件的管理功能。為了遵循本教程,您需要對PHP和WordPress的基本了解,並且對WordPress插件API具有工作知識。鑰匙要點
- >使用WordPress插件樣板通過結(jié)構(gòu)化的,有組織的方法加快開發(fā)過程,確保遵循最佳實踐。
- >通過使用設(shè)置API添加選項頁面來自定義插件,以允許用戶修改設(shè)置,例如通知的顯示位置以及後來考慮過時的幾天。 >通過註冊設(shè)置,添加設(shè)置字段以及使用樣板中提供的類和方法來處理這些設(shè)置值的保存和檢索。
- >通過為選項頁面創(chuàng)建一個乾淨(jìng),用戶友好的界面來優(yōu)化插件的面向式功能,並確保正確保存和顯示設(shè)置。 >
- >計劃進(jìn)一步增強,例如代碼清理,國際化和更有選擇性的應(yīng)用程序邏輯,以完善插件的效率和用戶體驗。
- 關(guān)於插件的 >
- >我們將開發(fā)一個簡單的插件,該插件將顯示自上次更新特定帖子以來的天數(shù)。我們還將為插件提供幾個簡單的自定義,從而允許用戶選擇特定數(shù)量,然後將其視為過時的帖子,以及在帖子內(nèi)容中的通知位置。 > 準(zhǔn)備樣板
>正如第一篇文章所述,我們可以下載樣板的新副本,進(jìn)行搜索並自行更換,或者我們可以使用非正式的WordPress插件樣板生成器來加快流程。讓我們將發(fā)電機(jī)用於插件。
>>前往WordPress插件生成器網(wǎng)站,並用適當(dāng)?shù)闹堤顚懕韱巍W屛覀兎Q我們的插件為“過時的通知”。這是一個示例表格,其中填充了字段。
>>我正在為鏈接到官方存儲庫的插件URL使用一個假想的URL。不必太擔(dān)心這些東西,因為我們始終可以在插件標(biāo)題中對其進(jìn)行修改。
>
單擊“構(gòu)建”按鈕,您應(yīng)該獲得WordPress插件板的不錯的自定義副本。
>安裝和激活插件生成的郵政編碼將包含兩個預(yù)期的目錄,資產(chǎn)和中繼。我們不會在安裝插件時使用Symlink路由,因此請在存檔中提取中繼文件夾並將其複製到WP-CONTENT/插件目錄中。
>
>我們?nèi)匀恍枰m當(dāng)?shù)刂孛员苊馀c其他插件的命名衝突,因此我們將把Trunk Directory重命名為過時的通用。如果您現(xiàn)在轉(zhuǎn)到WP-Admin中的“已安裝插件”部分,則可以肯定的是,您會看到插件已在已安裝但尚未激活的插件列表中。插件樣板生成器對插件描述沒有更改任何內(nèi)容,因此,如果要更改它,我們可以簡單地在主插件文件中編輯描述,在我們的情況下,eutated-notice.php。
>單擊“激活”以激活閃亮的新插件。您的WordPress網(wǎng)站上什麼都不會改變,因此請不要擔(dān)心激活插件後什麼都看不到。
>
>插件開發(fā)人員通常為用戶提供一種自定義插件設(shè)置的方法。這可以通過使用WordPress提供的設(shè)置API來實現(xiàn)。讓我們看看如何將自己的設(shè)置集成到插件中。
> 簡而言之,我們將允許用戶在帖子內(nèi)容之前或郵政內(nèi)容之後選擇通知出現(xiàn)的位置。就閾值的天數(shù)而言,用戶可以設(shè)置要過時的帖子之前的天數(shù)。使用這些信息,我們將動態(tài)更改通知的類別,以便我們可以與仍然被認(rèn)為是新鮮的帖子進(jìn)行不同的樣式。
>讓我們開始添加一個插件的選項頁面。
>>在管理文件夾中打開class-of-notice-admin.php。我們需要修改此類,以允許我們?yōu)椴寮]冊設(shè)置頁面。將此公共方法添加到班級結(jié)束時。
>>要注意的一件事是,由於我們正在使用類來定義鉤子,因此我們需要以數(shù)組的形式傳遞一個數(shù)組(
<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>
應(yīng)該做到的。我們現(xiàn)在需要做的最後一件事是使用樣板中提供的加載程序類正確加載它。在Include文件夾中打開您的類列出的notice.php,並添加我們在define_admin_hooks方法內(nèi)定義的其他掛鉤。在我們的選項頁面上包含的適當(dāng)操作掛鉤是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>
>您現(xiàn)在應(yīng)該在設(shè)置下查看附加的“過時通知”子菜單。您可以通過訪問URL http:// /wp-admin/options-general.php?page=Outdated-notice。
>現(xiàn)在是一個空白頁,所以讓我們開始使用正確的標(biāo)記填充部分文件。註冊,保存和檢索設(shè)置值
WordPress codex上的設(shè)置API頁面提供了一個很好的解釋,以說明如何註冊我們自己的設(shè)置,包括在選項頁面上顯示它們。
這是我們將要做的事情的細(xì)分:
用樣板加載器註冊鉤子
- 註冊設(shè)置部分
- 註冊兩個設(shè)置字段(閾值天數(shù)和文本位置)
- 註冊兩個設(shè)置
- 填充選項頁面
- 保存並重新播放顯示字段。
- >將鉤子註冊到樣板加載器
>
>要註冊設(shè)置部分,我們將需要使用register_setting函數(shù)。適當(dāng)?shù)膾煦^以初始化該函數(shù)是admin_Init。因此,首先,我們將在樣板加載器中添加另一個鉤子,以在我們的主樣本類的Define_admin_hooks方法中註冊我們的設(shè)置。為了使事情變得更簡單,並為我們的選項名稱提供了基本的命名空間,我們將在此類的頂部添加另一個私人變量。將此摘要放在Outed_notice_admin類的頂部。
從現(xiàn)在開始,我們將將此值預(yù)先為與我們的選項相關(guān)的任何事物。
><span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>接下來是實際註冊“設(shè)置”部分,設(shè)置字段和各個設(shè)置。再次打開OUTED_NOTICE_ADMIN類,然後添加公共方法寄存器。
註冊設(shè)置部分
<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>>在public Register_setting方法中,我們將註冊設(shè)置部分。我不會對各種功能和API進(jìn)行太多的研究,因為法典已經(jīng)提供了足夠的信息來開始。由於我們的插件設(shè)置相對簡單,我們將僅註冊一個部分。
這個片段將允許我們使用add_settings_section函數(shù)為我們的選項頁面註冊一個“常規(guī)”部分。
<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預(yù)列出我們的部分名稱,以防止與其他插件發(fā)生衝突。回調(diào)可用於提供有關(guān)我們部分的其他信息,這正是我們想要的。
>我們將添加另一種公共方法,Outdated_notice_general_cb,該方法將呼應(yīng)有關(guān)本節(jié)的基本信息。
<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>註冊兩個設(shè)置字段(閾值天數(shù)和文本位置)
我們需要使用的設(shè)置API的下一部分是在選項頁面上註冊要渲染的實際字段??梢允褂胊dd_settings_field函數(shù)來實現(xiàn)這一點。
>我們將使用無線電按鈕進(jìn)行文本位置配置。這是通過將此代碼添加到我們擁有的register_setting函數(shù)中來完成的。
>我們需要確保Add_settings_field的第五個參數(shù)將指向我們之前註冊的正確設(shè)置部分,否則我們可能在我們的選項頁面上看不到字段。
<span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>>這還尚未完成。我們需要提供回調(diào)功能,以呈現(xiàn)我們的無線電按鈕的實際標(biāo)記。在我們的OUTED_NOTICE_POINTION_CB函數(shù)中,我們需要包括此代碼塊:
可以使用普通文本輸入來配置一天閾值的第二個選項。因此,我們將註冊另一個設(shè)置字段:
<span>$this->loader->add_action( 'admin_init', $plugin_admin, 'register_setting' );</span>>再次,我們還需要提供一個回調(diào)函數(shù),該函數(shù)將呈現(xiàn)我們的文本字段。
註冊設(shè)置
<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函數(shù)進(jìn)行註冊。
<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函數(shù)的第三個參數(shù)是消毒回調(diào)。儘管它是可選的,但要確保在保存到數(shù)據(jù)庫之前對輸入值進(jìn)行消毒總是很有用的。
對於日期消費,我們將使用內(nèi)置的PHP功能,即在我們的情況下足夠。至於文本通知位置,我們將定義我們自己的消毒回調(diào)函數(shù),這將僅允許將某些值保存到數(shù)據(jù)庫中。當(dāng)處理僅限於特定值的選項時,這一點特別有用,例如在這種情況下,我們只接受兩個值之前和之後的值,因此我們的消毒回調(diào)將需要確保,如果值不是一個值這些,它不會被保存到數(shù)據(jù)庫中。
這是一個簡單的消毒回調(diào)函數(shù),可以實現(xiàn)這一目標(biāo): >現(xiàn)在我們需要確保正確的頁面渲染器。由於我們正在使用WordPress的方式註冊我們的字段和設(shè)置,因此此任務(wù)特別簡單。 >打開admin/partials文件夾內(nèi)的過時的notice-admin-display.php。 以下是我們可以根據(jù)我們之前註冊的設(shè)置渲染選項頁面的方式。
>
>這意味著我們的表單正常工作,因此唯一需要完成的操作是在文本字段中顯示當(dāng)前值,並確保選中正確的廣播按鈕。
這是回調(diào)的更新片段。
這絕不是完整的。我們始終可以改善此插件的管理功能。我能想到的一些事情是: i18n(國際化)準(zhǔn)備就緒 - 儘管我們在插件中廣泛使用__()和_e(),但我們並沒有真正完成實際的I18N過程。我不會在此處介紹此過程,因為該主題已經(jīng)在SitePoint上進(jìn)行了廣泛討論,例如在本文中。
>我們通過註冊相關(guān)設(shè)置創(chuàng)建了一個帶有基本管理功能的插件,並為用戶創(chuàng)建一個選項頁面以自定義我們的插件。在使用WordPress插件樣板的時間相對較短的時間內(nèi),我們實現(xiàn)了這一目標(biāo)而不損害代碼質(zhì)量,但仍按照WordPress建議的最佳實踐。
> > WordPress插件樣板,您可以在包含目錄中創(chuàng)建新類。這些類應(yīng)擴(kuò)展樣板提供的基類。然後,您可以將自己的方法添加到這些類中以實現(xiàn)所需的功能。您還可以根據(jù)需要修改現(xiàn)有的類和方法。 以將管理特定功能添加到插件中,您可以使用WordPress插入式Blookin Boblelplate的管理目錄中提供的類和方法。該目錄包括用於創(chuàng)建管理頁面,添加設(shè)置字段和處理表單提交的類。 以將公共面向公共功能添加到您的插件,您可以使用WordPress插件樣板的公共目錄中提供的類和方法。該目錄包括用於啟動腳本和樣式的類,以及顯示面向公眾的內(nèi)容。 > 用於處理AJAX請求。這些類包括用於註冊AJAX操作,處理AJAX請求和發(fā)送AJAX響應(yīng)的方法。 <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>
填充選項頁面
在註冊所有相關(guān)設(shè)置之後,<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功能的簡單組合,您的選項頁面完全可以立即完成。 保存並重新填充字段
>
>嘗試填充一些值並保存表單。您應(yīng)該收到“保存設(shè)置”的通知。但是沒有發(fā)生。讓我們嘗試對我們的兩個選項進(jìn)行var_dump。將其放在相關(guān)功能中。 <span>$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_options_page' );</span>
<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加載是完全不必要的。我們隨時可以從我們的代碼庫中刪除它。
結(jié)論
> WordPress插件樣板是什麼,為什麼要使用它?它提供了一個易於理解和使用的清晰,一致的結(jié)構(gòu)。使用此樣板可以為您節(jié)省大量的時間和精力來設(shè)置插件的基本結(jié)構(gòu)。它還可以確保您的插件遵循WordPress編碼標(biāo)準(zhǔn)和最佳實踐,這可以幫助防止錯誤和兼容性問題。 >
>我如何開始使用WordPress plugin Boilerplate?使用WordPress插件樣板,您首先需要從其GitHub存儲庫下載它。下載後,您可以重命名樣板的目錄和文件以匹配插件的名稱。然後,您可以通過在樣板的現(xiàn)有結(jié)構(gòu)中添加自己的自定義功能來開始開發(fā)插件。 >如何處理WordPress插件樣板中的插件設(shè)置?
>如何在插件中添加Admin特定功能?
>如何將面向公共的功能添加到我的插件中?
如何使用WordPress插入式插件國際化我的插件?
>
>在使用WordPress plubin Boblein blogin blogin Plate時,我如何調(diào)試我的插件?插件樣板可以通過多種方式完成。一種常見的方法是在wp-config.php文件中使用wp_debug常數(shù)。這將顯示PHP錯誤,通知和警告。您還可以使用可用於WordPress的各種調(diào)試插件,也可以使用PHP的內(nèi)置錯誤記錄功能。
以上是WordPress插件樣板第2部分:開發(fā)插件的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

使用Git管理WordPress項目時,應(yīng)只將主題、自定義插件和配置文件納入版本控制;設(shè)置.gitignore文件以忽略上傳目錄、緩存和敏感配置;利用webhook或CI工具實現(xiàn)自動部署並註意數(shù)據(jù)庫處理;採用兩分支策略(main/develop)進(jìn)行協(xié)作開發(fā)。這樣做可避免衝突、保障安全,並提升協(xié)作與部署效率。

使用WordPress測試環(huán)境是為了確保新功能、插件或主題在正式上線前的安全性和兼容性,避免影響真實網(wǎng)站。搭建測試環(huán)境的步驟包括:下載安裝本地服務(wù)器軟件(如LocalWP、XAMPP),創(chuàng)建站點、設(shè)置數(shù)據(jù)庫和管理員賬號,安裝主題和插件進(jìn)行測試;複製正式網(wǎng)站到測試環(huán)境的方法是通過插件導(dǎo)出站點、導(dǎo)入測試環(huán)境並替換域名;使用時應(yīng)注意不使用真實用戶數(shù)據(jù)、定期清理無用數(shù)據(jù)、備份測試狀態(tài)、適時重置環(huán)境,並統(tǒng)一團(tuán)隊配置以減少差異問題。

創(chuàng)建Gutenberg塊的關(guān)鍵在於理解其基本結(jié)構(gòu)並正確連接前後端資源。 1.準(zhǔn)備開發(fā)環(huán)境:安裝本地WordPress、Node.js和@wordpress/scripts;2.使用PHP註冊塊並用JavaScript定義塊的編輯和顯示邏輯;3.通過npm構(gòu)建JS文件以使更改生效;4.遇到問題時檢查路徑、圖標(biāo)是否正確或使用實時監(jiān)聽構(gòu)建避免重複手動編譯。按照這些步驟,可以逐步實現(xiàn)一個簡單的Gutenberg塊。

在WordPress中,當(dāng)新增自定義文章類型或修改固定鏈接結(jié)構(gòu)後,需手動刷新重寫規(guī)則,此時可通過代碼調(diào)用flush_rewrite_rules()函數(shù)實現(xiàn)。 1.可在主題或插件激活鉤子中添加該函數(shù)以自動刷新;2.僅在必要時執(zhí)行一次,如添加CPT、分類法或修改鏈接結(jié)構(gòu)後;3.避免頻繁調(diào)用以免影響性能;4.多站點環(huán)境下需視情況為每個站點單獨刷新;5.某些託管環(huán)境可能限制規(guī)則保存。此外,訪問“設(shè)置>固定鏈接”頁麵點擊保存也可觸髮刷新,適合非自動化場景。

要實現(xiàn)響應(yīng)式WordPress主題設(shè)計,首先要使用HTML5和移動優(yōu)先的Meta標(biāo)籤,在header.php中添加viewport設(shè)置以確保移動端正確顯示,並用HTML5結(jié)構(gòu)標(biāo)籤組織佈局;其次,利用CSS媒體查詢實現(xiàn)不同屏幕寬度下的樣式適配,按移動優(yōu)先原則編寫樣式,常用斷點包括480px、768px和1024px;第三,彈性處理圖片和佈局,為圖片設(shè)置max-width:100%並使用Flexbox或Grid佈局替代固定寬度;最後,通過瀏覽器開發(fā)者工具和真實設(shè)備進(jìn)行充分測試,優(yōu)化加載性能,確保響應(yīng)

tosetupredirectsinwordpressingthe.htaccessfile,locateThEfileInyourSite'sRootDirectorectoryAndDrectRectrulesabovethe#beginWordPresssection.forbasic301redirects,USETHEETHEETERECTREFTATRECTATREDERTREFTATREDERTREFTATRECTRECTATRECTRECTATREDECT301/OLD-PAGEHTTPS:

UsingsMtpForWordPresseMailSimProvesDeliverabilitialComparedComparedTothEdeDefaultPhpMail()函數(shù).1.smtpauthenticateswithyouremailserver.2.somemomehostsdisablesablephpmail()

TOINTEGRATETHIRD-PARTYAPISINTOWORDPRESS,關(guān)注臺詞:1.SelectAutableabepianDobtainCredentialslikeapikeYsoroAuthtoKensByEnterRegisteringThemSecure.2.ChooseBeteBetB????eteBetB????eteBetB????etebetInpliCityOorcustimplicityOrcustomPliCoseTompliCoseTomploomcoseusionfunctionfunctionfunctibunitiacuciencipuity forfunigation。
