石家莊網(wǎng)站建設(shè)方案報價

[轉(zhuǎn)譯]為WordPress插件開發(fā)的九個建議

時間:2015-01-27 13:16:21 瀏覽:2236次

    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ā)者。這個功能在默認情況下不啟用。用戶必須打開或通過你的插件。后者不建議,因為更新的用戶應(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)覆蓋插件的默認CSS通過管理界面

    其他的方式來讓你的用戶:提供預(yù)處理器版本的樣式表。用戶喜歡使用少定制插件的外觀Sass或另一個CSS預(yù)處理器會感謝你的。有一個良好的HTML結(jié)構(gòu)。經(jīng)常與CSS用戶重塑插件的主題放在他們的WordPress主題styles.css。使它容易選擇特定元素的插件有一個好的HTML建筑元素、直觀 class和id的名字。解釋如何通過文檔修改插件設(shè)置。最后,別忘了給你的插件“還原默認設(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ū)回饋。無論是為了好玩還是利潤,我認為每一個插件應(yīng)該至少一個好球即使沒有金錢交易的手。為什么要讓插件如果你不想在WP用戶的手嗎?有成千上萬的免費插件發(fā)布到社區(qū),花時間制定好視覺品牌標(biāo)識。像任何產(chǎn)品,WordPress插件受到市場競爭。在WordPress站在熙熙攘攘的市場,您將需要執(zhí)行所有類型的工作角色,包括角色以外的開發(fā),如設(shè)計、營銷、搜索引擎優(yōu)化、文案等等。是不夠的有一個偉大的插件,沒有人會使用它如果沒有人知道關(guān)于它。

    品牌一個插件是一門藝術(shù)和科學(xué)。為此,我雇傭一個設(shè)計師設(shè)計一個標(biāo)志和“外觀和感覺”為所有新插件我釋放到高端市場。有時,如果這是一個小的事情我將試著做它自己,這幾乎不起作用。良好的品牌和一個偉大的插件將帶你走得很遠。除此之外,建設(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)自:www.theclubhubb.com/news/n1607.htm,謝謝!珍惜別人的勞動成果,就是在尊重自己!)

 

上一篇:微信推廣技巧分享

下一篇:關(guān)鍵詞優(yōu)化外包陷阱,你中招了嗎?

返回列表

網(wǎng)站建設(shè)知識

石家莊網(wǎng)站建設(shè) 石家莊網(wǎng)站優(yōu)化 石家莊網(wǎng)站建設(shè)報價 石家莊網(wǎng)站推廣
石家莊網(wǎng)站建設(shè)方案 石家莊網(wǎng)站建設(shè)推廣 石家莊網(wǎng)站制作維護

更多 +聯(lián)系我們

24小時服務(wù)熱線:400-1180-360

業(yè)務(wù) QQ:  444961110電話: 0311-80740308

渠道合作:  444961110@qq.com

更多 +關(guān)于我們

河北供求互聯(lián)信息技術(shù)有限公司(河北供求網(wǎng))誕生于2003年4月,是康靈集團旗下子公司,也是河北省首批從事網(wǎng)站建設(shè)、電子商務(wù)開發(fā),并獲得國家工業(yè)和信息化部資質(zhì)認證的企業(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號

在線留言
免費試用
掃一掃

掃一掃
贈送神秘大禮

全國免費服務(wù)熱線
400-1180-360

返回頂部