Rumah >Tutorial CMS >WordTekan >Membina domain WHOIS dan WIDGET WordPress Data Sosial

Membina domain WHOIS dan WIDGET WordPress Data Sosial

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-02-19 10:56:10571semak imbas

Membina domain WHOIS dan WIDGET WordPress Data Sosial

Takeaways Key

    Tutorial menyediakan panduan langkah demi langkah untuk membuat widget WordPress yang memaparkan maklumat WHOIS dan sosial nama domain, termasuk PageRank Google dan 1 kiraan, Alexa Rank, saham Facebook dan suka Count, Twitter Tweet, LinkedIn, LinkedIn, LinkedIn saham, dan penciptaan domain dan tarikh luput.
  • Widget menggunakan API Jsonwhois, yang mengembalikan maklumat domain yang diperlukan dalam format JSON. Permintaan 'get' dihantar ke titik akhir dengan kunci API dan nama domain sebagai parameter permintaan.
  • Widget dikodkan dengan memperluaskan kelas WP_WIDGET standard, termasuk fungsi kelas atau kaedah yang diperlukan, dan mendaftarkan widget. Untuk setiap maklumat domain widget akan dipaparkan, kaedah yang mengembalikan data individu juga dibuat.
  • Widget juga mempunyai bentuk tetapan back-end yang terdiri daripada tiga bidang: tajuk widget, domain, dan kunci API. Apabila borang diisi, kaedah kemas kini () membersihkan dan menjimatkan nilai yang dimasukkan ke pangkalan data untuk digunakan semula. Kaedah widget () kemudian memaparkan widget di bahagian depan WordPress.
Dalam tutorial terdahulu, kami mengambil menyelam yang mendalam ke API WordPress HTTP dan kami belajar apa API dan bagaimana menggunakan API HTTP untuk menggunakan perkhidmatan web.

Saya berjanji untuk menunjukkan beberapa contoh dunia sebenar bagaimana menggunakan API di WordPress menggunakan API HTTP, ini adalah yang pertama dalam satu siri artikel yang akan datang.

Dalam tutorial ini, kami akan membangunkan widget WordPress yang memaparkan WHOIS dan maklumat sosial nama domain seperti Google's PageRank dan 1 kiraan, Alexa Rank, tarikh domain dicipta, apabila domain tamat, DNS Nama pelayan nama DNS , Saham Facebook dan suka Count, tweet Twitter dan saham LinkedIn.

Maklumat domain yang disenaraikan di atas akan diperolehi dari JsonWhois API.

Untuk mendapatkan data ini, permintaan GET akan dihantar ke titik akhir http://jsonwhois.com/api/whois dengan kunci API anda dan nama domain sebagai parameter permintaan.

masukkan URL di bawah ke dalam penyemak imbas anda untuk mendedahkan maklumat yang ada (dalam format JSON) mengenai domain sitepoint.com:

dari objek JSON widget yang kita usahakan akan mendapat datanya dari.
http://jsonwhois.com/api/whois/?apiKey=54183ad8c433fac10b6f5d7c&domain=sitepoint.com

Jika anda ingin melompat ke hadapan dalam tutorial ini, anda boleh melihat demo widget dan memuat turun plugin widget.

pengekodan widget

Pertama, sertakan tajuk plugin.

untuk membuat widget WordPress; Mula -mula melanjutkan kelas WP_WIDGET standard, sertakan fungsi atau kaedah kelas yang diperlukan dan akhirnya, daftar widget.
<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>

Buat kelas kanak-kanak memanjangkan kelas WP_WIDGET.

Beri widget nama dan keterangan menggunakan kaedah sihir __construct () seperti berikut.
<span>class Domain_Whois_Social_Data extends WP_Widget {
</span><span>// ...</span>
http://jsonwhois.com/api/whois/?apiKey=54183ad8c433fac10b6f5d7c&domain=sitepoint.com

kami akan membuat kaedah yang dipanggil json_whois_api yang akan menerima dua argumen: domain untuk pertanyaan dan kunci API anda yang tugasnya akan menghantar permintaan 'mendapatkan' objek menggunakan fungsi 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>

Untuk setiap maklumat domain widget akan dipaparkan, kaedah yang mengembalikan data individu juga akan dibuat. Iaitu kaedah yang mengembalikan pangkat Alexa, PageRank dan sebagainya akan dibuat.

patut dicatat

Bagi mereka yang baru untuk pengaturcaraan PHP dan pembangunan plugin WordPress, anda mungkin mencari sesuatu seperti ini pelik:

<span>class Domain_Whois_Social_Data extends WP_Widget {
</span><span>// ...</span>

the -> digunakan untuk mengakses harta benda dan [] untuk mengakses array.

Sebabnya ialah tindak balas yang dikembalikan oleh JsonWhois setelah dimulakan ke objek adalah objek dengan beberapa harta yang mengandungi array sebagai nilai.

Kod di bawah menerangkan ini $ objek-> facebook-> data [0]-> share_count;

<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>
tanpa urutan tertentu, di bawah adalah kaedah atau fungsi kelas yang akan mengembalikan pelbagai maklumat domain widget WordPress akan dipaparkan.

<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>
<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>
Borang tetapan widget back-end dicipta oleh kaedah () kaedah yang terdiri daripada tiga bidang bentuk yang menempatkan tajuk widget, domain dan kunci API anda.

<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>
Membina domain WHOIS dan WIDGET WordPress Data Sosial Apabila borang widget diisi, kaedah kemas kini () membersihkan dan menyimpan nilai yang dimasukkan ke pangkalan data untuk digunakan semula.

<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>
kaedah widget () memaparkan widget di bahagian depan WordPress.

<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>
Kod Penjelasan: Pertama, nilai borang widget yang disimpan (tajuk, domain dan kunci API) diambil dari pangkalan data dan disimpan ke pembolehubah.

Kunci domain dan API diserahkan kepada kaedah JSON_WHOIS_API dengan badan tindak balas yang dihasilkan disimpan ke $ API_Response.

Panggilan ke pelbagai kaedah yang mengembalikan data domain dibuat dengan badan tindak balas ($ API_Response) sebagai argumen.

Akhirnya, kami menutup kelas widget.

/**
	 * 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>
Kelas widget perlu didaftarkan dengan disambungkan ke tindakan widgets_init sehingga diiktiraf oleh WordPress Internals.

<span>/**
</span><span>	 * Sanitize widget form values as they are saved.
</span><span>	 *
</span><span>	 * <span>@see WP_Widget::update()
</span></span><span>	 *
</span><span>	 * <span>@param <span>array</span> $new_instance Values just sent to be saved.
</span></span><span>	 * <span>@param <span>array</span> $old_instance Previously saved values from database.
</span></span><span>	 *
</span><span>	 * <span>@return <span>array</span> Updated safe values to be saved.
</span></span><span>	 */
</span>	<span>public function update( $new_instance, $old_instance ) {
</span>		<span>$instance                = array();
</span>		<span>$instance['title']       = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
</span>		<span>$instance['domain_name'] = ( ! empty( $new_instance['domain_name'] ) ) ? strip_tags( $new_instance['domain_name'] ) : '';
</span>
		<span>return $instance;
</span>	<span>}</span>
di bawah adalah tangkapan skrin widget.

Membina domain WHOIS dan WIDGET WordPress Data Sosial Lihat demo widget.

Sumber yang berkaitan

Jika anda berminat untuk mengetahui lebih lanjut mengenai bagaimana widget WordPress berfungsi, anda mungkin berminat dengan artikel berikut:
  • widpress widget Api
  • Bina widget log masuk WordPress dan widget pendaftaran
  • Membuat widget di WordPress melalui Widgets API
  • Membuat widget WordPress Piala Dunia 2014

Bungkus

Untuk lebih memahami bagaimana widget dibina dan bagaimana melaksanakannya di laman WordPress anda, muat turun plugin widget dari GitHub.

seperti yang saya nyatakan, artikel ini adalah yang pertama dalam siri yang akan menunjukkan bagaimana API WordPress HTTP digunakan dalam plugin.

Pastikan anda mengawasi saluran WordPress untuk tutorial yang serupa.

sehingga kita bertemu lagi, pengekodan gembira!

soalan yang sering ditanya mengenai membina domain whois dan data sosial WordPress widget

Bagaimana saya boleh memasang domain WHOIS dan widget WordPress data sosial di laman web saya? Setelah dimuat turun, anda boleh memasangnya dengan menavigasi ke papan pemuka WordPress anda, mengklik pada 'Plugin', kemudian 'Tambah Baru', dan akhirnya 'Muat naik Plugin'. Anda kemudian boleh memilih fail yang dimuat turun dan klik 'Pasang sekarang'. Selepas plugin dipasang, klik 'Aktifkan' untuk mula menggunakannya.

Bolehkah saya menyesuaikan penampilan widget di laman web saya? Padankan tema laman web anda. Plugin ini dilengkapi dengan fail CSS yang boleh diubah suai untuk menukar rupa dan nuansa widget. Anda boleh menukar warna, fon, dan susun atur yang sesuai dengan pilihan anda.

Bagaimana saya boleh menggunakan widget untuk mencari maklumat domain? Ia mencari maklumat domain dengan memasukkan nama domain dalam kotak carian dan mengklik 'carian'. Widget kemudian akan memaparkan maklumat WHOIS untuk domain, termasuk status pendaftaran domain, maklumat pemilik, dan banyak lagi. Widget juga membolehkan anda mencari data sosial. Ia boleh mendapatkan maklumat dari pelbagai platform media sosial, termasuk Facebook, Twitter, dan LinkedIn. Ini berguna untuk memahami kehadiran media sosial domain.

adalah widget yang serasi dengan semua tema WordPress? Walau bagaimanapun, mungkin terdapat beberapa tema yang tidak berfungsi dengan baik kerana pengekodan atau reka bentuk khusus mereka. Sekiranya anda menghadapi sebarang masalah, disarankan untuk menghubungi pemaju plugin untuk mendapatkan bantuan.

Bolehkah saya menggunakan widget pada beberapa laman web? Walau bagaimanapun, anda perlu memasang dan mengaktifkannya di setiap laman web secara individu.

Adakah widget dikemas kini secara teratur? Untuk menambah ciri baru atau membetulkan sebarang pepijat. Anda boleh menyemak kemas kini dari papan pemuka WordPress anda.

Adakah widget menyokong nama domain antarabangsa?

Ya, widget menyokong nama domain antarabangsa. Ia boleh mendapatkan maklumat WHOIS untuk domain yang didaftarkan di pelbagai negara dan dengan sambungan domain yang berbeza. Semak ketersediaan domain. Sekiranya domain tidak didaftarkan, widget akan memaparkan mesej yang menunjukkan bahawa domain tersedia. Tiada had set ke bilangan carian yang boleh anda lakukan dengan widget. Walau bagaimanapun, penggunaan yang berlebihan boleh menyebabkan penyekatan IP sementara oleh pelayan WHOIS untuk mencegah penyalahgunaan. Ia disyorkan untuk menggunakan widget secara bertanggungjawab.

Atas ialah kandungan terperinci Membina domain WHOIS dan WIDGET WordPress Data Sosial. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn