ホームページ > CMS チュートリアル > &#&プレス > WhoisとソーシャルデータWordPressウィジェットの構築

WhoisとソーシャルデータWordPressウィジェットの構築

Joseph Gordon-Levitt
リリース: 2025-02-19 10:56:10
オリジナル
559 人が閲覧しました

WhoisとソーシャルデータWordPressウィジェットの構築

キーテイクアウト

  • このチュートリアルでは、GoogleのPagerankや1カウント、Alexaランク、Facebookの共有、Like、Twitterツイート、LinkedInなど、ドメイン名のWHOISとソーシャル情報を表示するWordPressウィジェットを作成するための段階的なガイドを提供します。株式、およびドメインの作成と有効期限。
  • ウィジェットは、JSON形式で必要なドメイン情報を返すJSONWhois APIを使用します。 「取得」要求は、APIキーとドメイン名を要求パラメーターとしてエンドポイントに送信します。
  • ウィジェットは、必要なクラス関数またはメソッドを含む標準のWP_Widgetクラスを拡張し、ウィジェットを登録することによりコーディングされます。ドメイン情報の各部分について、ウィジェットが表示する予定で、個々のデータを返す方法も作成されます。
  • ウィジェットには、ウィジェットタイトル、ドメイン、およびAPIキーの3つのフィールドで構成されるバックエンド設定フォームも備えています。フォームが入力されると、更新()メソッドは、再利用のために入力された値をデータベースに消毒および保存します。 Widget()メソッドは、WordPressのフロントエンドにウィジェットを表示します。
  • 以前のチュートリアルでは、WordPress HTTP APIに深く潜り込み、APIとは何か、HTTP APIを使用してWebサービスを消費する方法を学びました。
  • HTTP APIを使用してWordPressでAPIを消費する方法の実際の例をいくつか紹介することを約束しました。これは、今後の記事の最初のものです。 このチュートリアルでは、GoogleのPageRankや1カウント、Alexaランク、ドメインが作成された日付、DNS Name Serversなどのドメイン名のwhoisとソーシャル情報を表示するWordPressウィジェットを開発します。 、Facebookの株式といいねカウント、Twitterのツイート、LinkedIn株。
  • 上記のドメイン情報は、jsonwhois apiから取得されます。 このデータを取得するには、APIキーとドメイン名をリクエストパラメータとして、Endpoint http://jsonwhois.com/api/whoisにget requestが送信されます。
以下のURLをブラウザに入力して、ドメインSitePoint.comに関する利用可能な情報(JSON形式)を明らかにします:

それはJSONオブジェクトからです。開発したウィジェットは、そのデータを取得します。 このチュートリアルでジャンプしたい場合は、ウィジェットのデモを表示してウィジェットプラグインをダウンロードできます。

ウィジェットのコーディング

最初に、プラグインヘッダーを含めてください。

WordPressウィジェットを作成するには。最初に標準のWP_WIDGETクラスを拡張し、必要なクラス機能またはメソッドを含め、最後にウィジェットを登録します。

WP_Widgetクラスを拡張する子供クラスを作成します

ウィジェットに次のように__construct()マジックメソッドを使用して名前と説明を与えます。

http://jsonwhois.com/api/whois/?apiKey=54183ad8c433fac10b6f5d7c&domain=sitepoint.com
ログイン後にコピー

2つの引数を受け入れるJSON_WHOIS_APIというメソッドを作成します。クエリするドメインと、JSONWhois APIに「取得」要求を送信し、応答本体を取得してから応答を変換することです。 json_decode()functionを使用してオブジェクト

<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>
ログイン後にコピー
ウィジェットが表示するドメイン情報の各部分について、個々のデータを返すメソッドも作成されます。つまり、Alexaランク、Pagerankなどを返す方法が作成されます。

メモに値する

PHPプログラミングとWordPressプラグインの開発を初めて使用すると、この奇妙なものが見つかるかもしれません:

- >はオブジェクトプロパティにアクセスするために使用され、[]配列にアクセスするために使用されます。
<span>class Domain_Whois_Social_Data extends WP_Widget {
</span><span>// ...</span>
ログイン後にコピー
この理由は、オブジェクトにデコードされた後のjsonwhoisによる応答が返されることです。

以下のコードでは、この$ object-> facebook-> data [0] - > share_count;

を説明します

順番にはありません。以下は、WordPressウィジェットが表示するさまざまなドメイン情報を返すクラスメソッドまたは関数です。

<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>
ログイン後にコピー
バックエンドウィジェット設定フォームは、ウィジェットタイトル、ドメイン、およびAPIキーを収容する3つのフォームフィールドで構成されるフォーム()メソッドによって作成されます。
<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>
ログイン後にコピー
<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>
ログイン後にコピー
Widget()メソッドは、WordPressのフロントエンドにウィジェットを表示します。
<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>
ログイン後にコピー

コード説明:最初に、保存されたウィジェットフォーム値(タイトル、ドメイン、APIキー)がデータベースから取得され、変数に保存されます。

ドメインとAPIキーはjson_whois_apiメソッドに渡され、結果の応答本体が$ api_responseに保存されます。 ドメインデータを返すさまざまな方法への呼び出しは、引数として応答ボディ($ api_response)を使用して行われます。
<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>
ログイン後にコピー
最後に、ウィジェットクラスを閉じます。WhoisとソーシャルデータWordPressウィジェットの構築

ウィジェットクラスは、Widgets_initアクションにフックされて、WordPressの内部によって認識されることで登録する必要があります。
<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>
ログイン後にコピー
以下は、ウィジェットのスクリーンショットです。

<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>
ログイン後にコピー
ウィジェットのデモを表示します

関連リソース

WordPressウィジェットの仕組みについて詳しく知りたい場合は、次の記事に興味があるかもしれません。
  • WordPress Widget API
  • タブ付きのWordPressログインと登録ウィジェットを作成します
  • Widgets APIを介してWordPressでウィジェットを作成します
  • ワールドカップ2014 WordPressウィジェットの作成
wlap up

ウィジェットの構築方法とWordPressサイトに実装する方法をさらに理解するには、GitHubからウィジェットプラグインをダウンロードしてください。

私が言ったように、この記事は、WordPress HTTP APIがプラグインでどのように使用されるかを示すシリーズの最初のものです。

同様のチュートリアルについては、WordPressチャンネルに注意してください。

再び会うまで、幸せなコーディング!

ドメインの構築についてよく聞かれる質問とソーシャルデータWordPressウィジェット

WHOISとソーシャルデータのWordPressウィジェットをWebサイトにインストールするにはどうすればよいですか?

ドメインWHOISおよびソーシャルデータWordPressウィジェットをインストールするには、WordPressプラグインリポジトリからプラグインを最初にダウンロードする必要があります。ダウンロードしたら、WordPressダッシュボードに移動し、「プラグイン」をクリックしてから「新規追加」、最後に「プラグインのアップロード」をクリックしてインストールできます。その後、ダウンロードしたファイルを選択して、[今すぐインストール]をクリックできます。プラグインがインストールされたら、[アクティブ化]をクリックして使用を開始します。

Webサイトでウィジェットの外観をカスタマイズできますか?あなたのウェブサイトのテーマに一致します。プラグインには、ウィジェットのルックアンドフィールを変更するために変更できるCSSファイルが付属しています。好みに合わせて色、フォント、レイアウトを変更することができます。

ウィジェットを使用してドメイン情報を検索するにはどうすればよいですか?検索ボックスにドメイン名を入力して「検索」をクリックすることにより、ドメイン情報を検索します。ウィジェットは、ドメインの登録ステータス、所有者情報などを含むドメインのWHOIS情報を表示します。ウィジェットでは、ソーシャルデータを検索することもできます。 Facebook、Twitter、LinkedInなど、さまざまなソーシャルメディアプラットフォームから情報を取得できます。これは、ドメインのソーシャルメディアの存在を理解するのに役立ちます。

ウィジェットはすべてのWordPressテーマと互換性がありますか?ただし、特定のコーディングや設計により、うまく機能しないテーマがいくつかある場合があります。問題が発生した場合は、プラグイン開発者にお問い合わせください。

複数のWebサイトでウィジェットを使用できますか?

はい、プラグインをダウンロードしたら、複数のWebサイトで使用できます。ただし、各Webサイトに個別にインストールしてアクティブ化する必要があります。

ウィジェットは定期的に更新されていますか?

ウィジェットは定期的に更新され、WordPressの最新バージョンと互換性があり、新しい機能を追加するか、バグを修正します。 WordPressダッシュボードからの更新を確認できます。

ウィジェットは国際ドメイン名をサポートしていますか?さまざまな国や異なるドメイン拡張機能で登録されているドメインのWHOIS情報を取得できます。

ウィジェットを使用してドメインの可用性を確認できますか?ドメインの可用性を確認してください。ドメインが登録されていない場合、ウィジェットはドメインが利用可能であることを示すメッセージを表示します。ウィジェットで実行できる検索の数に制限が設定されていません。ただし、過度に使用すると、WHOISサーバーによる一時的なIPブロッキングにつながる可能性があり、虐待を防ぎます。責任を持ってウィジェットを使用することをお勧めします

以上がWhoisとソーシャルデータWordPressウィジェットの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート