時間:2015-01-27 13:16:21 瀏覽:2531次
WordPress是一種使用PHP語言開發(fā)的博客平臺,用戶可以在支持PHP和MySQL數(shù)據(jù)庫的服務(wù)器上架設(shè)屬于自己的網(wǎng)站。也可以把 WordPress當(dāng)作一個內(nèi)容管理系統(tǒng)(CMS)來使用。WordPress 功能強大,插件眾多,易于擴充功能。安裝使用都非常方便。
為了更好的來應(yīng)用WordPress建站豐富該類網(wǎng)站的功能,必要的插件是不可少的。而今天筆者小丹要分享給大家的這篇文章就是關(guān)于WordPress插件開發(fā)的幾條建議。
1、使用正確的Hooks。Hooks是你的插件之間的橋梁和更大的生態(tài)系統(tǒng)(WordPress)。你不能寫插件沒有hooks,你會驚訝地發(fā)現(xiàn)有多少插件濫用它們。
第一步的正確使用hooks僅僅在于花適當(dāng)?shù)臅r間通讀的官方文檔鉤子插件API。最終你想深入了解的鉤的火災(zāi)序列——從頁面請求的一部分,將內(nèi)容發(fā)送到瀏覽器的行動參考API向我們展示了通常在什么訂單的事情。有很多可供選擇的hooks取決于你的插件,你可能需要在許多的線。
我總是遵守分裝的實踐功能盡可能relevantly-distributed穿越我的hooks。這是因為插件開發(fā),采用“非常及時”(JIT)心態(tài)通過只運行代碼的時候需要的是一個好主意。如果你需要設(shè)置一些全局變量或寄存器類型,不管那頁面加載的時候,什么應(yīng)該被解雇init。你不應(yīng)該準(zhǔn)備HTML也不做任何繁重的處理init在大多數(shù)情況下。在任何艱苦的處理inithooks將意味著所有前端頁面加載,管理頁面加載AJAX請求。這樣將受到這些沉重的過程導(dǎo)致的延遲。這不是理想!應(yīng)該避免更好的性能。通常,我只使用 init hooks:
(1)排隊的腳本
(2)本地化腳本
(3)檢索設(shè)置(根據(jù)用戶類型和頁面請求)
下面的代碼塊是一個通用的例子我有條件地隊列的腳本init。你會看到我小心喂只對每個類型的頁面所需的資源,沒有管理樣式表除非用戶加載的插件管理頁面。同樣,沒有后端接口的前端加載樣式表。
<?php
#} Plugin Init
add_action('init', 'examplePlugin_init');
function examplePlugin_init(){
global $examplePlugin_Settings; #req
#} Retrieve settings (if not loaded)
$settings = $examplePlugin_Settings->getAll();
#} Admin & Public (Global) Scripts
wp_enqueue_script("jquery");
#} Enqueuement for Public & Admin seperately
if (!is_admin()){
#} Public only
#} Public-Global - JS & CSS
wp_enqueue_script('examplepluginjs', plugins_url('/js/examplePlugin.min.js',__FILE__),array('jquery'));
wp_enqueue_style('exampleplugincss', plugins_url('/css/examplePlugin.min.css',__FILE__) );
#} Any specifically enabled elements
if ($settings['showElement'] == 1) wp_enqueue_script('examplepluginextrajs', plugins_url('/js/examplePlugin.extraFeature.min.js',__FILE__), array('jquery'));
} else {
#} Admin only
#} Admin-Global - JS & CSS
#} Try not to use these, unless specifically necessary, use the below method
#} Admin only + specifically a plugin admin page
if (examplePlugin_isAdminPage()) {
#} Plugin-specific Admin styles
wp_enqueue_style('examplepluginadmincss', plugins_url('/css/examplePlugin.admin.min.css',__FILE__) );
}
#} Admin only + WordPress Edit Page specifically
if (examplePlugin_is_edit_page()){
#} Anything which is to load on the edit post/edit page, page
#} For example shortcode inserter functionality
} else {
#} Anything which is to load on non-editor admin pages
}
#} Admin only + WordPress editor on page
if (get_user_option('rich_editing') == 'true') {
#} This is another way of targetting the WordPress Editor
#} In this instance we use this to localize a script:
wp_localize_script( 'examplepluginadminjs', 'exampleAJAX', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
}
}
}
#} Example function for detecting if the requested page is an edit page
function examplePlugin_is_edit_page($new_edit = null){
#} Global
global $pagenow;
#} Ensure we are in admin
if (!is_admin()) return false;
#} Detect edit page type
if($new_edit == "edit") #} Edit page
return in_array( $pagenow, array( 'post.php', ) );
elseif($new_edit == "new") #} New Edit page
return in_array( $pagenow, array( 'post-new.php' ) );
else #} New or Edit page
return in_array( $pagenow, array( 'post.php', 'post-new.php' ) );
}
#} Determines if this is our admin page
function examplePlugin_isAdminPage(){
#} This is defined on init, and is a simple array of page slugs
global $examplePlugin_slugs;
#} Detect page
if (isset($_GET['page'])) if (in_array($_GET['page'],$examplePlugin_slugs)) return true;
return false;
}
除了init,您可能需要使用一個組合下列行動掛鉤的,這對大多數(shù)插件足以模塊化的代碼邏輯不會造成性能問題或可維護性的挑戰(zhàn)。
admin_menu
admin_notices
wp_head
wp_footer
wp_ajax_[yourFunction]
注意:一些主題會下降wp_footer,(有時甚至wp_head),支持他們自己的版本。這些WordPress主題通常quickly-written或hack-y品種,但它們比你想象的更常見。所以總是測試您的插件與盡可能多的主題,如果你的目的是提供普遍的兼容性。
2、利用WP Cron。Cron任務(wù)調(diào)度系統(tǒng)最初建立的UNIX用戶可以在指定的時間執(zhí)行命令。你知道WordPress核心cron-like功能建立在嗎?這一特性是地叫wp cron。如果你的插件有一個日常任務(wù)需要運行wp cron的任務(wù)可能是有用的。wp cron雖然有其局限性。例如,它依賴于web頁面的請求導(dǎo)致延遲發(fā)射任務(wù)如果WordPress站點沒有高流量。但這些限制是可以解決的。交通繁忙的網(wǎng)站,對于那些與auto-pinging設(shè)置,wp cron可以是一個愉快的方式來創(chuàng)建一個cron-like設(shè)置。
其他不為人知的但有用的WordPress特點是:
admin notices
wp_remote_get
wp_remote_post
human_time_diff
zeroise
wp_send_json_success
wp_send_json_error
Pluggable Functions
3、利用自動更新。WordPress 3.7以來,自動更新可用的WordPress插件和主題開發(fā)者。這個功能在默認(rèn)情況下不啟用。用戶必須打開或通過你的插件。后者不建議,因為更新的用戶應(yīng)該顯式地選擇進入。然而,很好突出或提醒用戶自動升級選項通過你的插件的管理界面。如果啟用,自動更新是一個很好的工具連續(xù)WordPress插件開發(fā)。它很適合推出安全補丁,熱修復(fù)程序和版本發(fā)布。在WordPress.org上列出的插件受益于自動管理插件的版本庫。
4、考慮使用MVC設(shè)計模式。WordPress插件獲得很大收益時使用MVC體系結(jié)構(gòu)創(chuàng)建的。模塊化、可維護性和許多其他原因,沒有更好的選擇。MVC使得它很容易清潔和組織你的插件架構(gòu)。奇怪的場合,我仍然使用我稱之為“野生代碼”架構(gòu)。這是給小插件,一次性的有時演示功能。下面你將看到這兩個目錄結(jié)構(gòu)我通常使用插件:“野生”架構(gòu)版本向左、向右和MVC。它會給你一個更好的主意關(guān)于MVC的區(qū)別可以:
此外,所有我寫包含一個新插件documentation目錄與HTML文檔組成,languages插件目錄和Sass版本的樣式表。目前,我想說現(xiàn)在預(yù)處理器之間的標(biāo)準(zhǔn)工具,你會發(fā)現(xiàn)專業(yè)WP插件開發(fā)人員的工具集??纯唇裉斓慕榻B實現(xiàn)MVC插件開發(fā)——這是一個偉大的底漆。
5、插件文件名稱唯一。別忘了你的插件將被安裝在“忙碌的生態(tài)系統(tǒng)”,甚至在同一時間作為你的競爭對手的插件。獨特的名稱你的文件和變量是至關(guān)重要的。最簡單的方法將前綴定制PHP變量、類、函數(shù)、CSS選擇器和文件名稱與插件的名字。
6、測試您的插件徹底。任何好的軟件開發(fā)周期的最后一部分是拋光、準(zhǔn)備和測試要發(fā)布的產(chǎn)品。這里是我的建議,當(dāng)你準(zhǔn)備部署你的插件的最初版本或正準(zhǔn)備發(fā)布一個版本:
(1)調(diào)試你的插件wp_debug啟用,直到一切都解決了。
(2)測試一個新的WordPress的插件安裝。
(3)測試插件使用多個WordPress主題。
(4)考慮測試插件在舊WordPress版本和PHP版本,你懷疑可能影響插件的功能。
(5)分析和測試您的插件和瀏覽器開發(fā)工具(DevTools為移Chrome,Firefox的Firebug,等等)。
(6)壓縮所有前端文件(HTML、CSS和圖像)。包括non-minified版本的樣式表和HTML文件,插件用戶可以進行自定義修改。
(7)寫好的文檔。資料員可以用這個過程是有益的。
7、允許用戶自定義插件。有一個秘密你的用戶是不會告訴你的,他們摸索在幕后與你的插件的源代碼。WordPress用戶比任何其他組軟件和我打過交道的客戶,挖掘代碼。許多插件客戶也買你的插件的開發(fā)人員提供的功能添加到他們的WordPress項目。任何插件一個大鐵桿通常設(shè)計和可定制性或處理支持門票的忿怒。而不是讓插件定制困難,迫使客戶插件的源代碼,摸給你的用戶選項和api允許他們?yōu)樗麄兊男枨蠖ㄖ撇寮墓δ?。全局設(shè)置應(yīng)設(shè)置通過插件的管理界面。單實例設(shè)置,例如專為WordPress文章或自定義設(shè)置頁面可以通過為用戶提供一個定制的短碼為您的插件API。
我相信你的插件,用戶應(yīng)該在最低限度能夠做到以下幾點:
(1)改變風(fēng)格,如顏色、圖標(biāo)、邊界、字體、背景等等考慮創(chuàng)建多個插件主題(黑、光等)。
(2)啟用/禁用可選第三方依賴項(例如Google Analytics、Facebook API等等)。
(3)啟用/禁用某些功能的插件
(4)改變前置文本標(biāo)簽(如標(biāo)簽用來描述UI按鈕和輸入字段)
(5)覆蓋插件的默認(rèn)CSS通過管理界面
其他的方式來讓你的用戶:提供預(yù)處理器版本的樣式表。用戶喜歡使用少定制插件的外觀Sass或另一個CSS預(yù)處理器會感謝你的。有一個良好的HTML結(jié)構(gòu)。經(jīng)常與CSS用戶重塑插件的主題放在他們的WordPress主題styles.css。使它容易選擇特定元素的插件有一個好的HTML建筑元素、直觀 class和id的名字。解釋如何通過文檔修改插件設(shè)置。最后,別忘了給你的插件“還原默認(rèn)設(shè)置”功能。這“工廠復(fù)位”功能是好的,當(dāng)災(zāi)難發(fā)生在定制。
8、優(yōu)先考慮插件的性能。性能應(yīng)該開發(fā)一個插件時必須考慮的首要問題。每個組件應(yīng)該優(yōu)化速度。最后,您的用戶可能會使用很多插件,使每個頁面加載生產(chǎn)過一把把的PHP文件。瘦的你可以讓你的插件就越好。只要有可能建立緩存,尤其是多實例環(huán)境。
高于一切:測試。測試在多個主機與幾個主題與其他插件。P3分析器是一個極好的工具,它將幫助你優(yōu)化你的插件的源代碼。
9、把精力放在品牌插件。本文對你可能并不重要,也許你發(fā)布插件只是為了好玩。也許你的主要目標(biāo)是WordPress社區(qū)回饋。無論是為了好玩還是利潤,我認(rèn)為每一個插件應(yīng)該至少一個好球即使沒有金錢交易的手。為什么要讓插件如果你不想在WP用戶的手嗎?有成千上萬的免費插件發(fā)布到社區(qū),花時間制定好視覺品牌標(biāo)識。像任何產(chǎn)品,WordPress插件受到市場競爭。在WordPress站在熙熙攘攘的市場,您將需要執(zhí)行所有類型的工作角色,包括角色以外的開發(fā),如設(shè)計、營銷、搜索引擎優(yōu)化、文案等等。是不夠的有一個偉大的插件,沒有人會使用它如果沒有人知道關(guān)于它。
品牌一個插件是一門藝術(shù)和科學(xué)。為此,我雇傭一個設(shè)計師設(shè)計一個標(biāo)志和“外觀和感覺”為所有新插件我釋放到高端市場。有時,如果這是一個小的事情我將試著做它自己,這幾乎不起作用。良好的品牌和一個偉大的插件將帶你走得很遠(yuǎn)。除此之外,建設(shè)一個成功的WordPress插件業(yè)務(wù)主要是創(chuàng)意的游戲 ->發(fā)展 ->市場營銷,然后優(yōu)化循環(huán)。
以下是特定于插件的關(guān)鍵教訓(xùn)我學(xué)到銷售:每個插件應(yīng)該添加一個神奇的功能而不是十個平庸的人,保持簡單;價格應(yīng)該基于插件可以添加的價值給客戶;偉大的客戶服務(wù)是非常重要的;構(gòu)建一個off-marketplace商業(yè)網(wǎng)站(不要依靠市場配置文件);不要打擊競爭對手;專注于創(chuàng)造一個偉大的產(chǎn)品人們想使用。
有一些痛苦的挑戰(zhàn)推動市場的WordPress插件。它可以創(chuàng)建一張支持票風(fēng)暴激烈請求退款、one-star-review困境。使用上面的實踐中,我們設(shè)法減少大量的這些挑戰(zhàn),我越來越發(fā)現(xiàn)一個雙贏的方式從WordPress開發(fā)創(chuàng)收。
(轉(zhuǎn)載請注明轉(zhuǎn)自:m.flw114.cn/news/n1607.htm,謝謝!珍惜別人的勞動成果,就是在尊重自己!)
24小時服務(wù)熱線:400-1180-360
業(yè)務(wù) QQ: 444961110電話: 0311-80740308
渠道合作: 444961110@qq.com
河北供求互聯(lián)信息技術(shù)有限公司(河北供求網(wǎng))誕生于2003年4月,是康靈集團旗下子公司,也是河北省首批從事網(wǎng)站建設(shè)、電子商務(wù)開發(fā),并獲得國家工業(yè)和信息化部資質(zhì)認(rèn)證的企業(yè)。公司自成立以來,以傳播互聯(lián)網(wǎng)文化為已任, 以高科技為起點,以網(wǎng)絡(luò)營銷研究與應(yīng)用為核心,致力于為各企事業(yè)單位提供網(wǎng)絡(luò)域名注冊、虛擬主機租用、網(wǎng)站制作與維護、網(wǎng)站推廣和宣傳、網(wǎng)站改版與翻譯、移動互聯(lián)網(wǎng)營銷平臺開發(fā)與運營、企業(yè)郵局、網(wǎng)絡(luò)支付、系統(tǒng)集成、軟件開發(fā)、電子商務(wù)解決方案等優(yōu)質(zhì)的信息技術(shù)服務(wù),與中國科學(xué)院計算機網(wǎng)絡(luò)信息中心、騰訊、百度、阿里巴巴、搜狗、360、電信、聯(lián)通、中國數(shù)據(jù)、萬網(wǎng)、中資源、陽光互聯(lián)、點點客、北龍中網(wǎng)、電信通等達成戰(zhàn)略合作伙伴關(guān)系。
版權(quán)所有 ? 河北供求互聯(lián)信息技術(shù)有限公司-優(yōu)秀的石家莊網(wǎng)站建設(shè)公司,為您提供石家莊網(wǎng)站建設(shè)、網(wǎng)站推廣等優(yōu)質(zhì)服務(wù).
服務(wù)熱線:400-1180-360 增值電信業(yè)務(wù)經(jīng)營許可證:冀B2-20105159 冀ICP備09010972號