搜尋
首頁CMS教程&#&按建立一個域Whois和社交數據WordPress小部件

建立一個域Whois和社交數據WordPress小部件

鑰匙要點

  • >教程提供了一個逐步指南,用於創建一個WordPress小部件,顯示域名的WHOIS和社交信息,包括Google的Pagerank和1 Count,Alexa等級,Alexa Rank,Facebook Shares和Facebook conters and twitter Tweet, Twitter Tweet,LinkedIn分享,域的創建和到期日期。
  • >小部件利用JSONWHOIS API,該API以JSON格式返回所需的域信息。以API密鑰和域名作為請求參數發送“ GET”請求。 通過擴展標準的WP_Widget類,包括必要的類功能或方法,並註冊小部件來編碼小部件。對於小部件將要顯示的每個域信息,也創建了返回單個數據的方法。
  • >小部件還具有由三個字段組成的後端設置表單:小部件標題,域和API鍵。填充表單後,Update()方法對數據庫進行了消毒並將輸入的值保存到數據庫中以進行重複使用。然後,窗口基()方法在WordPress的前端顯示窗口小部件。
  • >
  • 在上一個教程中,我們深入研究了WordPress HTTP API,我們了解了API是什麼以及如何使用HTTP API來消費Web服務。
  • >我承諾將顯示一些現實世界中的示例,說明如何使用HTTP API在WordPress中消費API,這是一系列即將發布的文章中的第一個。
>在本教程中,我們將開發一個WordPress小部件,顯示諸如Google的Pagerank和1個Count,Alexa等級的域名WHOIS和社交信息,創建域名的日期,當該域到期時,DNS名稱服務器時,Facebook分享和喜歡Count,Twitter Tweets和LinkedIn共享。

上面列出的域信息將從JSONWHOIS API獲得。

要獲取此數據,將發送一個get請求到端點http://jsonwhois.com/api/whois at api鍵,將域名和域名作為請求參數。

>

>在瀏覽器中輸入下面的URL,以揭示有關domain sitepoint.com的可用信息(以JSON格式):

>

>是來自JSON對象,我們開發的小部件將從。

如果您想進入本教程,可以查看小部件的演示並下載窗口小部件插件。

編碼小部件

首先,包括插件標題。
http://jsonwhois.com/api/whois/?apiKey=54183ad8c433fac10b6f5d7c&domain=sitepoint.com
>

創建一個WordPress窗口小部件;首先擴展標準WP_WIDGET類,包括必要的類功能或方法,最後註冊小部件。

創建一個幼兒類擴展wp_widget類。

>

>使用__construct()魔術方法給小部件一個名稱和描述,如下。

http://jsonwhois.com/api/whois/?apiKey=54183ad8c433fac10b6f5d7c&domain=sitepoint.com

>我們將創建一種稱為JSON_WHOIS_API的方法,該方法將接受兩個參數:查詢域和您的API鍵,其職責是向JSONWHOIS API發送“ Get”請求,檢索響應主體,然後將響應轉換為一個使用JSON_DECODE()函數的對象。

<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></span>
對於小部件將要顯示的每個域信息,

也將創建單個數據的方法。也就是說,將創建一種返回Alexa等級的方法。

值得注意的

對於那些新的PHP編程和WordPress插件開發的人,您可能會發現類似奇怪的東西:

- > - >用於訪問對象屬性和[]用於訪問數組。 >
<span>class Domain_Whois_Social_Data extends WP_Widget {
</span><span>// ...</span>
的原因是,被解碼為對像後,jsonwhois的響應返回是

>多維對象

>,其中一些屬性包含數組為值。

下面的代碼說明此$對象 - > facebook-> data [0] - > share_count;

>沒有特定順序,以下是將返回WordPress Widget將顯示的各種域信息的類方法或函數。

<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>
>後端小部件設置表單是由由三個表單字段組成的form()方法創建的,這些表單範圍容納了窗口小部件標題,域和您的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>
>

填充窗口小部件時,update()方法將輸入的值清理並保存到數據庫中以進行重複使用。

<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的前端顯示小部件。 建立一個域Whois和社交數據WordPress小部件

代碼說明:首先,從數據庫中檢索了保存的小部件式值(標題,域和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方法,結果響應主體保存到$ api_response。

>調用返回域數據的各種方法是用響應主體($ api_response)作為參數進行的。

>
<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>
>最後,我們關閉了小部件類。

>小部件類需要通過掛鉤到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>></p></span>
</span>			<span><span><span><label> for<span>="<span><?php echo $this->get_field_id( 'title' ); ?></span>"</span>></label></span><span><?php _e( 'Title:' ); ?></span><span><span></span>></span>
</span>			<span><span><span><input> 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></span>></span>
</span>
		<span><span><span><p>></p></span>
</span>			<span><span><span><label>
</label></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></span>></span>
</span>			<span><span><span><input> 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></span>></span>
</span>
		<span><span><span><p>></p></span>
</span>			<span><span><span><label> for<span>="<span><?php echo $this->get_field_id( 'api_key' ); ?></span>"</span>></label></span><span><?php _e( 'API Key)' ); ?></span><span><span></span>></span>
</span>			<span><span><span><input> 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></span>></span>
</span>	<span><span><?php </span></span><span>	<span>}</span></span></span></span></span></span></span></span></span></span></span></span>
查看窗口小部件的演示。

相關資源

如果您有興趣了解WordPress小部件的工作方式,那麼您可能會對以下文章感興趣:
  • > wordpress窗口小部件api
  • 構建標籤WordPress登錄和註冊窗口小部件
  • >通過小部件在WordPress中創建小部件API
  • 創建世界杯2014 WordPress Widget
總結

>進一步了解小部件的構建方式以及如何在WordPress網站上實現它,請從GitHub下載窗口小部件插件。

> 正如我提到的那樣,本文是第一個系列中的第一篇,該系列將演示WordPress HTTP API在插件中使用。 >

請確保關注類似教程的WordPress頻道。

直到我們再次見面,愉快的編碼!

經常詢問有關構建域Whois和社交數據WordPress小部件的問題

>如何在我的網站上安裝域WHOIS和社交數據WordPress?

安裝域WHOIS和社交數據WordPress窗口小部件,您需要先從WordPress插件存儲庫中下載插件。下載後,您可以通過導航到WordPress儀表板,單擊“插件”,然後“添加新”,最後是“上傳插件”來安裝它。然後,您可以選擇下載的文件,然後單擊“立即安裝”。安裝插件後,單擊“激活”以開始使用它。

>我可以在網站上自定義窗口小部件的外觀嗎?匹配您網站的主題。該插件帶有一個CSS文件,您可以修改該文件以更改小部件的外觀和感覺。您可以更改顏色,字體和佈局以適合您的首選項。

>

>我如何使用小部件搜索域信息?

>

一旦安裝了小部件並激活了窗口小部件,您可以使用它通過在搜索框中輸入域名並單擊“搜索”來搜索域信息。然後,小部件將顯示域的WHOIS信息,包括域的註冊狀態,所有者信息等。

>

>我可以使用小部件搜索社交數據嗎?小部件還允許您搜索社交數據。它可以從包括Facebook,Twitter和LinkedIn在內的各種社交媒體平台中檢索信息。這對於理解域的社交媒體存在可能是有用的。

>與所有WordPress主題兼容的小部件?

>小部件設計為與大多數WordPress主題兼容。但是,由於其特定的編碼或設計,可能會有一些主題可以很好地工作。如果您遇到任何問題,建議與插件開發人員聯繫以尋求幫助。

>我可以在多個網站上使用小部件嗎?但是,您需要單獨安裝和激活它。

> widget是否會定期更新?

>

定期更新小部件,以確保其與WordPress和WordPress和WordPress和WordPress和添加新功能或修復任何錯誤。您可以從WordPress儀表板中檢查更新。

>小部件是否支持國際域名?

是的,窗口小部件支持國際域名。它可以檢索在各個國家 /地區註冊和不同域擴展的域的WHOIS信息。

>

>我可以使用小部件檢查域的可用性嗎?檢查域的可用性。如果未註冊該域,小部件將顯示一條消息,指示該域可用。

>

您可以使用小部件執行的搜索數量設置限制。但是,過度使用可能會導致WHOIS服務器暫時阻止IP,以防止濫用。建議負責任地使用小部件。

>

以上是建立一個域Whois和社交數據WordPress小部件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
我可以在3天內學習WordPress嗎?我可以在3天內學習WordPress嗎?Apr 09, 2025 am 12:16 AM

能在三天內學會WordPress。 1.掌握基礎知識,如主題、插件等。 2.理解核心功能,包括安裝和工作原理。 3.通過示例學習基本和高級用法。 4.了解調試技巧和性能優化建議。

WordPress是CMS嗎?WordPress是CMS嗎?Apr 08, 2025 am 12:02 AM

WordPress是內容管理系統(CMS)。它提供內容管理、用戶管理、主題和插件功能,支持創建和管理網站內容。其工作原理包括數據庫管理、模板系統和插件架構,適用於從博客到企業網站的各種需求。

WordPress有什麼用?WordPress有什麼用?Apr 07, 2025 am 12:06 AM

wordpressgood forvortalyanewebprojectDuetoItsAsatilityAsacms.itexcelsin:1)用戶友好性,允許Aeserywebsitesetup; 2)sexibility andcustomized andcustomization and numerthemesandplugins; 3)seoop timigimization; and4)and4)

我應該使用Wix或WordPress嗎?我應該使用Wix或WordPress嗎?Apr 06, 2025 am 12:11 AM

Wix適合沒有編程經驗的用戶,WordPress適合希望有更多控制和擴展能力的用戶。 1)Wix提供拖放式編輯器和豐富模板,易於快速搭建網站。 2)WordPress作為開源CMS,擁有龐大社區和插件生態,支持深度自定義和擴展。

WordPress的成本是多少?WordPress的成本是多少?Apr 05, 2025 am 12:13 AM

WordPress本身免費,但使用需額外費用:1.WordPress.com提供從免費到付費的套餐,價格從每月幾美元到幾十美元不等;2.WordPress.org需購買域名(每年10-20美元)和託管服務(每月5-50美元);3.插件和主題多數免費,付費的價格在幾十到幾百美元之間;通過選擇合適的託管服務、合理使用插件和主題、定期維護和優化,可以有效控制和優化WordPress的成本。

WordPress仍然免費嗎?WordPress仍然免費嗎?Apr 04, 2025 am 12:06 AM

WordPress核心版本是免費的,但使用過程中可能產生其他費用。 1.域名和託管服務需要付費。 2.高級主題和插件可能需要付費。 3.專業服務和高級功能可能需要付費。

對於初學者來說,WordPress容易嗎?對於初學者來說,WordPress容易嗎?Apr 03, 2025 am 12:02 AM

WordPress對初學者來說容易上手。 1.登錄後台後,用戶界面直觀,簡潔的儀表板提供所有必要功能鏈接。 2.基本操作包括創建和編輯內容,所見即所得的編輯器簡化了內容創建。 3.初學者可以通過插件和主題擴展網站功能,學習曲線存在但可以通過實踐掌握。

為什麼有人會使用WordPress?為什麼有人會使用WordPress?Apr 02, 2025 pm 02:57 PM

人們選擇使用WordPress是因為其強大和靈活性。 1)WordPress是一個開源的CMS,易用性和可擴展性強,適合各種網站需求。 2)它有豐富的主題和插件,生態系統龐大,社區支持強大。 3)WordPress的工作原理基於主題、插件和核心功能,使用PHP和MySQL處理數據,支持性能優化。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用