搜索
首页CMS教程WordPress建立一个域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键),并保存到变量。

域和API键传递给JSON_WHOIS_API方法,结果响应主体保存到$ api_response。
<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_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主题兼容吗?

> widget旨在与大多数WordPress主题兼容。但是,由于其特定的编码或设计,可能会有一些主题可以很好地工作。如果您遇到任何问题,建议与插件开发人员联系以寻求帮助。

>我可以在多个网站上使用小部件吗?但是,您需要单独安装和激活它。

> widget是否会定期更新?

>

定期更新小部件,以确保其与WordPress和WordPress和WordPress和WordPress和添加新功能或修复任何错误。您可以从WordPress仪表板中检查更新。

>小部件是否支持国际域名?

是的,窗口小部件支持国际域名。它可以检索在各个国家 /地区注册和不同域扩展的域的WHOIS信息。

>

>我可以使用小部件检查域的可用性吗?检查域的可用性。如果未注册该域,小部件将显示一条消息,指示该域可用。

>

您可以使用小部件执行的搜索数量设置限制。但是,过度使用可能会导致WHOIS服务器暂时阻止IP,以防止滥用。建议负责任地使用小部件。

>

以上是建立一个域Whois和社交数据WordPress小部件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
WordPress与其他网站构建者相比如何?WordPress与其他网站构建者相比如何?Apr 28, 2025 am 12:04 AM

WordPressExcelSoverotherWeberteBuilderSduetoItsflexible,可伸缩性,andopen-sourcenature.1)它'saversatilecmswithExtEnsextEnsiveCustomizedOptionsVIATHEMESANDPLUGINS.2)它的alllearbutoffersbutoffersbutoffersbutoffersbutofferspopelyContrololonCemastered.3)

5个WordPress插件,供开发人员在2025年使用5个WordPress插件,供开发人员在2025年使用Apr 27, 2025 am 08:25 AM

2025年网站开发的七个必备WordPress插件 在2025年建立顶级WordPress网站需要速度,响应能力和可扩展性。 实现这种有效的实现通常取决于战略插件的选择。 这篇文章Highlig

您将使用WordPress做什么?您将使用WordPress做什么?Apr 27, 2025 am 12:14 AM

WordPresscanbeusedforvariouspurposesbeyondblogging.1)E-commerce:WithWooCommerce,itcanbecomeafullonlinestore.2)Membershipsites:PluginslikeMemberPressenableexclusivecontentareas.3)Portfoliosites:ThemeslikeAstraallowstunninglayouts.Ensuretomanageplugins

WordPress适合创建投资组合网站吗?WordPress适合创建投资组合网站吗?Apr 26, 2025 am 12:05 AM

是的,wordpressisisexcellentforcortingaportfoliowebsite.1)itoffersnumeroversnumeroverportfolio-spificthemeslike'astra'astra'astra'astra'astra'astra'astra'astra'astra'elementor'Enelementor'enableIntiviveSiveSign,Thoughtemanycanslowthesite.3)

使用WordPress而不是从头开始编码网站的优点是什么?使用WordPress而不是从头开始编码网站的优点是什么?Apr 25, 2025 am 12:16 AM

WordPressisadvantageousovercodingawebsitefromscratchdueto:1)easeofuseandfasterdevelopment,2)flexibilityandscalability,3)strongcommunitysupport,4)built-inSEOandmarketingtools,5)cost-effectiveness,and6)regularsecurityupdates.Thesefeaturesallowforquicke

是什么使WordPress成为内容管理系统?是什么使WordPress成为内容管理系统?Apr 24, 2025 pm 05:25 PM

WordPressIsAcmsDuetoItseAsofuse,自定义,USERMANAMECTION,SEO和COMMUNITYSUPPORT.1)ITSIMPLIFIESCONTENTMANGAMEWITHANINTUISIDERFEEFFECE.2)提供extentensiveCustomizationThroughThroughTheMesandPlugins.3)supportrobustuserrolesandplugins.4)supportrobustuserrolesandpermissions.4)增强

wordpress怎么加评论框wordpress怎么加评论框Apr 20, 2025 pm 12:15 PM

在 WordPress 网站上启用评论功能,可以为访客提供参与讨论和分享反馈的平台。为此,请按照以下步骤操作:启用评论:在仪表盘中,导航至“设置”>“讨论”,并选中“允许评论”复选框。创建评论表单:在编辑器中,单击“添加块”并搜索“评论”块,将其添加到内容中。自定义评论表单:通过设置标题、标签、占位符和按钮文本来定制评论块。保存更改:单击“更新”以保存评论框并将其添加到页面或文章中。

wordpress怎么复制子站wordpress怎么复制子站Apr 20, 2025 pm 12:12 PM

如何复制 WordPress 子站?步骤:在主站创建子站。在主站克隆子站。将克隆导入目标位置。更新域名(可选)。分开插件和主题。

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脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!