鑰匙要點(diǎn)
- >教程提供了一個(gè)逐步指南,用於創(chuàng)建一個(gè)WordPress小部件,顯示域名的WHOIS和社交信息,包括Google的Pagerank和1 Count,Alexa等級,Alexa Rank,F(xiàn)acebook Shares和Facebook conters and twitter Tweet, Twitter Tweet,LinkedIn分享,域的創(chuàng)建和到期日期。
- >小部件利用JSONWHOIS API,該API以JSON格式返回所需的域信息。以API密鑰和域名作為請求參數(shù)發(fā)送“ GET”請求。 通過擴(kuò)展標(biāo)準(zhǔn)的WP_Widget類,包括必要的類功能或方法,並註冊小部件來編碼小部件。對於小部件將要顯示的每個(gè)域信息,也創(chuàng)建了返回單個(gè)數(shù)據(jù)的方法。 >小部件還具有由三個(gè)字段組成的後端設(shè)置表單:小部件標(biāo)題,域和API鍵。填充表單後,Update()方法對數(shù)據(jù)庫進(jìn)行了消毒並將輸入的值保存到數(shù)據(jù)庫中以進(jìn)行重複使用。然後,窗口基()方法在WordPress的前端顯示窗口小部件。
- >
- 在上一個(gè)教程中,我們深入研究了WordPress HTTP API,我們了解了API是什麼以及如何使用HTTP API來消費(fèi)Web服務(wù)。 >我承諾將顯示一些現(xiàn)實(shí)世界中的示例,說明如何使用HTTP API在WordPress中消費(fèi)API,這是一系列即將發(fā)布的文章中的第一個(gè)。
上面列出的域信息將從JSONWHOIS API獲得。
要獲取此數(shù)據(jù),將發(fā)送一個(gè)get請求到端點(diǎn)http://jsonwhois.com/api/whois at api鍵,將域名和域名作為請求參數(shù)。>
>在瀏覽器中輸入下面的URL,以揭示有關(guān)domain sitepoint.com的可用信息(以JSON格式):>
>是來自JSON對象,我們開發(fā)的小部件將從。
如果您想進(jìn)入本教程,可以查看小部件的演示並下載窗口小部件插件。編碼小部件
首先,包括插件標(biāo)題。
http://jsonwhois.com/api/whois/?apiKey=54183ad8c433fac10b6f5d7c&domain=sitepoint.com>
創(chuàng)建一個(gè)WordPress窗口小部件;首先擴(kuò)展標(biāo)準(zhǔn)WP_WIDGET類,包括必要的類功能或方法,最後註冊小部件。
創(chuàng)建一個(gè)幼兒類擴(kuò)展wp_widget類。
>
>使用__construct()魔術(shù)方法給小部件一個(gè)名稱和描述,如下。
http://jsonwhois.com/api/whois/?apiKey=54183ad8c433fac10b6f5d7c&domain=sitepoint.com
>我們將創(chuàng)建一種稱為JSON_WHOIS_API的方法,該方法將接受兩個(gè)參數(shù):查詢域和您的API鍵,其職責(zé)是向JSONWHOIS API發(fā)送“ Get”請求,檢索響應(yīng)主體,然後將響應(yīng)轉(zhuǎn)換為一個(gè)使用JSON_DECODE()函數(shù)的對象。
<span><span><?php </span></span><span> </span><span><span>/* </span></span><span><span>Plugin Name: Domain Whois and Social Data </span></span><span><span>Plugin URI: https://www.sitepoint.com </span></span><span><span>Description: Display whois and social data of a Domain. </span></span><span><span>Version: 1.0 </span></span><span><span>Author: Agbonghama Collins </span></span><span><span>Author URI: http://w3guy.com </span></span><span><span>License: GPL2 </span></span><span><span>*/</span></span>對於小部件將要顯示的每個(gè)域信息,
也將創(chuàng)建單個(gè)數(shù)據(jù)的方法。也就是說,將創(chuàng)建一種返回Alexa等級的方法。
值得注意的對於那些新的PHP編程和WordPress插件開發(fā)的人,您可能會發(fā)現(xiàn)類似奇怪的東西:
- > - >用於訪問對象屬性和[]用於訪問數(shù)組。
<span>class Domain_Whois_Social_Data extends WP_Widget { </span><span>// ...</span>的原因是,被解碼為對像後,jsonwhois的響應(yīng)返回是
>多維對象
>,其中一些屬性包含數(shù)組為值。下面的代碼說明此$對象 - > facebook-> data [0] - > share_count;
>沒有特定順序,以下是將返回WordPress Widget將顯示的各種域信息的類方法或函數(shù)。
<span>function __construct() { </span> <span><span>parent::</span>__construct( </span> <span>'whois_social_widget', // Base ID </span> <span>__( 'Domain Whois and Social Data', 'dwsd' ), // Name </span> <span>array( 'description' => __( 'Display whois and social data of a Domain.', 'dwsd' ), ) // Description </span> <span>); </span> <span>}</span>
<span>/** </span><span> * Retrieve the response body of the API GET request and convert it to an object </span><span> * </span><span> * <span>@param $domain </span></span><span> * <span>@param $api_key </span></span><span> * </span><span> * <span>@return <span>object|mixed</span> </span></span><span> */ </span> <span>public function json_whois_api( $domain, $api_key ) { </span> <span>$url = 'http://jsonwhois.com/api/whois/?apiKey=' . $api_key . '&domain=' . $domain; </span> <span>$request = wp_remote_get( $url ); </span> <span>$response_body = wp_remote_retrieve_body( $request ); </span> <span>$decode_json_to_object = json_decode( $response_body ); </span> <span>return $decode_json_to_object; </span> <span>}</span>
<span>return $response_data->social->facebook->data[0]->share_count;</span>
<span>[facebook] => stdClass Object </span> <span>( </span> <span>[data] => Array </span> <span>( </span> <span>[0] => stdClass Object </span> <span>( </span> https<span>%3A%2F%2Feditor.sitepoint.com => https://www.sitepoint.com </span> <span>[normalized_url] => https://www.sitepoint.com/ </span> <span>[share_count] => 1094 </span> <span>[like_count] => 448 </span> <span>[comment_count] => 161 </span> <span>[total_count] => 1703 </span> <span>[commentsbox_count] => 0 </span> <span>[comments_fbid] => 501562723433 </span> <span>[click_count] => 138 </span> <span>) </span> <span>) </span> <span>)</span>
<span>/** </span><span> * Get the domain Alexa Rank </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>integer</span> </span></span><span> */ </span> <span>public function alexa_rank( $response_data ) { </span> <span>return $response_data->alexa->rank; </span> <span>}</span>
<span>/** </span><span> * Number of times domain have been tweeted </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>integer</span> </span></span><span> */ </span> <span>public function twitter_tweets( $response_data ) { </span> <span>return $response_data->social->twitter->count; </span> <span>}</span>
<span>/** </span><span> * Number of times domain have been shared on Facebook </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>integer</span> </span></span><span> */ </span> <span>public function facebook_share_count( $response_data ) { </span> <span>return $response_data->social->facebook->data[0]->share_count; </span> <span>}</span>>後端小部件設(shè)置表單是由由三個(gè)表單字段組成的form()方法創(chuàng)建的,這些表單範(fàn)圍容納了窗口小部件標(biāo)題,域和您的API鍵。
<span>/** </span><span> * Number of times domain have been liked on Facebook </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>mixed</span> </span></span><span> */ </span> <span>public function facebook_like_count( $response_data ) { </span> <span>return $response_data->social->facebook->data[0]->like_count; </span> <span>}</span>>
<span>/** </span><span> * Number of times domain have been shared to LinkedIn </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>integer</span> </span></span><span> */ </span> <span>public function linkedin_share( $response_data ) { </span> <span>return $response_data->social->linkedIn; </span> <span>}</span>
<span>/** </span><span> * Number of times domain have been shared on Google+ </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>integer</span> </span></span><span> */ </span> <span>public function google_share( $response_data ) { </span> <span>return $response_data->social->google; </span> <span>}</span>
<span>/** </span><span> * Google PageRank of Domain </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>integer</span> </span></span><span> */ </span> <span>public function google_page_rank( $response_data ) { </span> <span>return $response_data->google->rank; </span> <span>}</span>>
填充窗口小部件時(shí),update()方法將輸入的值清理並保存到數(shù)據(jù)庫中以進(jìn)行重複使用。
<span>/** </span><span> *Domain name servers </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>string</span> </span></span><span> */ </span> <span>public function domain_nameservers( $response_data ) { </span> <span>$name_servers = $response_data->whois->domain->nserver; </span> <span>return $name_servers->{0} . ' ' . $name_servers->{1}; </span> <span>}</span>widget()方法在WordPress的前端顯示小部件。

代碼說明:首先,從數(shù)據(jù)庫中檢索了保存的小部件式值(標(biāo)題,域和API密鑰)並保存到變量。
><span>/** </span><span> * Date domain was created </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>mixed</span> </span></span><span> */ </span> <span>public function date_created( $response_data ) { </span> <span>return $response_data->whois->domain->created; </span> <span>}</span>域和API鍵傳遞給JSON_WHOIS_API方法,結(jié)果響應(yīng)主體保存到$ api_response。
>調(diào)用返回域數(shù)據(jù)的各種方法是用響應(yīng)主體($ api_response)作為參數(shù)進(jìn)行的。
><span>/** </span><span> * Domain expiration date </span><span> * </span><span> * <span>@param <span>object</span> $response_data JSON decoded response body </span></span><span> * </span><span> * <span>@return <span>mixed</span> </span></span><span> */ </span> <span>public function expiration_date( $response_data ) { </span> <span>return $response_data->whois->domain->expires; </span> <span>}</span>>最後,我們關(guān)閉了小部件類。
>小部件類需要通過掛鉤到widgets_init操作來註冊,因此WordPress Internals識別它。
下面的
是小部件的屏幕截圖。>
/** * Back-end widget form. * * @see WP_Widget::form() * * @param array $instance Previously saved values from database. * * @return string */ public function form( $instance ) { if ( isset( $instance['title'] ) ) { $title = $instance['title']; } else { $title = __( 'Domain Whois & Social Data', 'dwsd' ); } $domain_name = isset( $instance['domain_name'] ) ? $instance['domain_name'] : ''; $api_key = isset( $instance['api_key'] ) ? $instance['api_key'] : '54183ad8c433fac10b6f5d7c'; ?> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="<span><?php echo $this->get_field_id( 'title' ); ?></span>"</span>></span><span><?php _e( 'Title:' ); ?></span><span><span></label</span>></span> </span> <span><span><span><input</span> class<span>="widefat"</span> id<span>="<span><?php echo $this->get_field_id( 'title' ); ?></span>"</span> </span></span><span> <span>name<span>="<span><?php echo $this->get_field_name( 'title' ); ?></span>"</span> type<span>="text"</span> </span></span><span> <span>value<span>="<span><?php echo esc_attr( $title ); ?></span>"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> </span></span><span> <span>for<span>="<span><?php echo $this->get_field_id( 'domain_name' ); ?></span>"</span>></span><span><?php _e( 'Domain name (without http://)' ); ?></span><span><span></label</span>></span> </span> <span><span><span><input</span> class<span>="widefat"</span> id<span>="<span><?php echo $this->get_field_id( 'domain_name' ); ?></span>"</span> </span></span><span> <span>name<span>="<span><?php echo $this->get_field_name( 'domain_name' ); ?></span>"</span> type<span>="text"</span> </span></span><span> <span>value<span>="<span><?php echo esc_attr( $domain_name ); ?></span>"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><span><p</span>></span> </span> <span><span><span><label</span> for<span>="<span><?php echo $this->get_field_id( 'api_key' ); ?></span>"</span>></span><span><?php _e( 'API Key)' ); ?></span><span><span></label</span>></span> </span> <span><span><span><input</span> class<span>="widefat"</span> id<span>="<span><?php echo $this->get_field_id( 'api_key' ); ?></span>"</span> </span></span><span> <span>name<span>="<span><?php echo $this->get_field_name( 'api_key' ); ?></span>"</span> type<span>="text"</span> </span></span><span> <span>value<span>="<span><?php echo esc_attr( $api_key ); ?></span>"</span>></span> </span> <span><span><span></p</span>></span> </span> <span><span><?php </span></span><span> <span>}</span></span>查看窗口小部件的演示。
相關(guān)資源
如果您有興趣了解WordPress小部件的工作方式,那麼您可能會對以下文章感興趣:- > wordpress窗口小部件api
- 構(gòu)建標(biāo)籤WordPress登錄和註冊窗口小部件 >通過小部件在WordPress中創(chuàng)建小部件API
- 創(chuàng)建世界杯2014 WordPress Widget
>進(jìn)一步了解小部件的構(gòu)建方式以及如何在WordPress網(wǎng)站上實(shí)現(xiàn)它,請從GitHub下載窗口小部件插件。
>
正如我提到的那樣,本文是第一個(gè)系列中的第一篇,該系列將演示W(wǎng)ordPress HTTP API在插件中使用。
請確保關(guān)注類似教程的WordPress頻道。
直到我們再次見面,愉快的編碼!經(jīng)常詢問有關(guān)構(gòu)建域Whois和社交數(shù)據(jù)WordPress小部件的問題
>如何在我的網(wǎng)站上安裝域WHOIS和社交數(shù)據(jù)WordPress?
安裝域WHOIS和社交數(shù)據(jù)WordPress窗口小部件,您需要先從WordPress插件存儲庫中下載插件。下載後,您可以通過導(dǎo)航到WordPress儀表板,單擊“插件”,然後“添加新”,最後是“上傳插件”來安裝它。然後,您可以選擇下載的文件,然後單擊“立即安裝”。安裝插件後,單擊“激活”以開始使用它。
>我可以在網(wǎng)站上自定義窗口小部件的外觀嗎?匹配您網(wǎng)站的主題。該插件帶有一個(gè)CSS文件,您可以修改該文件以更改小部件的外觀和感覺。您可以更改顏色,字體和佈局以適合您的首選項(xiàng)。
>>我如何使用小部件搜索域信息?
>
>我可以使用小部件搜索社交數(shù)據(jù)嗎?小部件還允許您搜索社交數(shù)據(jù)。它可以從包括Facebook,Twitter和LinkedIn在內(nèi)的各種社交媒體平臺中檢索信息。這對於理解域的社交媒體存在可能是有用的。 >與所有WordPress主題兼容的小部件?>小部件設(shè)計(jì)為與大多數(shù)WordPress主題兼容。但是,由於其特定的編碼或設(shè)計(jì),可能會有一些主題可以很好地工作。如果您遇到任何問題,建議與插件開發(fā)人員聯(lián)繫以尋求幫助。
>我可以在多個(gè)網(wǎng)站上使用小部件嗎?但是,您需要單獨(dú)安裝和激活它。
> widget是否會定期更新?
>
定期更新小部件,以確保其與WordPress和WordPress和WordPress和WordPress和添加新功能或修復(fù)任何錯(cuò)誤。您可以從WordPress儀表板中檢查更新。
>小部件是否支持國際域名?
是的,窗口小部件支持國際域名。它可以檢索在各個(gè)國家 /地區(qū)註冊和不同域擴(kuò)展的域的WHOIS信息。 >
>我可以使用小部件檢查域的可用性嗎?檢查域的可用性。如果未註冊該域,小部件將顯示一條消息,指示該域可用。>
您可以使用小部件執(zhí)行的搜索數(shù)量設(shè)置限制。但是,過度使用可能會導(dǎo)致WHOIS服務(wù)器暫時(shí)阻止IP,以防止濫用。建議負(fù)責(zé)任地使用小部件。>
以上是建立一個(gè)域Whois和社交數(shù)據(jù)WordPress小部件的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

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

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

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

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

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

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

熱門話題

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

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

在WordPress中,當(dāng)新增自定義文章類型或修改固定鏈接結(jié)構(gòu)後,需手動刷新重寫規(guī)則,此時(shí)可通過代碼調(diào)用flush_rewrite_rules()函數(shù)實(shí)現(xiàn)。 1.可在主題或插件激活鉤子中添加該函數(shù)以自動刷新;2.僅在必要時(shí)執(zhí)行一次,如添加CPT、分類法或修改鏈接結(jié)構(gòu)後;3.避免頻繁調(diào)用以免影響性能;4.多站點(diǎn)環(huán)境下需視情況為每個(gè)站點(diǎn)單獨(dú)刷新;5.某些託管環(huán)境可能限制規(guī)則保存。此外,訪問“設(shè)置>固定鏈接”頁麵點(diǎ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.遇到問題時(shí)檢查路徑、圖標(biāo)是否正確或使用實(shí)時(shí)監(jiān)聽構(gòu)建避免重複手動編譯。按照這些步驟,可以逐步實(shí)現(xiàn)一個(gè)簡單的Gutenberg塊。

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