建立一个域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,这是一系列即将发布的文章中的第一个。
上面列出的域信息将从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>
也将创建单个数据的方法。也就是说,将创建一种返回Alexa等级的方法。
值得注意的对于那些新的PHP编程和WordPress插件开发的人,您可能会发现类似奇怪的东西:
- > - >用于访问对象属性和[]用于访问数组。
<span>class Domain_Whois_Social_Data extends WP_Widget { </span><span>// ...</span>
>多维对象
>,其中一些属性包含数组为值。下面的代码说明此$对象 - > 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>
<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>

>代码说明:首先,从数据库中检索了保存的窗口小部件值(标题,域和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>
>
>最后,我们关闭了小部件类。<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</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>
相关资源
如果您有兴趣了解WordPress小部件的工作方式,那么您可能会对以下文章感兴趣:- > wordpress窗口小部件api
- 构建标签WordPress登录和注册窗口小部件 >通过小部件在WordPress中创建小部件API
- 创建世界杯2014 WordPress Widget
>进一步了解小部件的构建方式以及如何在WordPress网站上实现它,请从GitHub下载窗口小部件插件。
>
正如我提到的那样,本文是第一个系列中的第一篇,该系列将演示WordPress HTTP API在插件中使用。
请确保关注类似教程的WordPress频道。
直到我们再次见面,愉快的编码!经常询问有关构建域Whois和社交数据WordPress小部件的问题
>如何在我的网站上安装域WHOIS和社交数据WordPress?
安装域WHOIS和社交数据WordPress窗口小部件,您需要先从WordPress插件存储库中下载插件。下载后,您可以通过导航到WordPress仪表板,单击“插件”,然后“添加新”,最后是“上传插件”来安装它。然后,您可以选择下载的文件,然后单击“立即安装”。安装插件后,单击“激活”以开始使用它。
>我可以在网站上自定义窗口小部件的外观吗?匹配您网站的主题。该插件带有一个CSS文件,您可以修改该文件以更改小部件的外观和感觉。您可以更改颜色,字体和布局以适合您的首选项。
>>我如何使用小部件搜索域信息?
>
>我可以使用小部件搜索社交数据吗?小部件还允许您搜索社交数据。它可以从包括Facebook,Twitter和LinkedIn在内的各种社交媒体平台中检索信息。这对于理解社交媒体的存在很有用。>窗口小部件与所有WordPress主题兼容吗?> widget旨在与大多数WordPress主题兼容。但是,由于其特定的编码或设计,可能会有一些主题可以很好地工作。如果您遇到任何问题,建议与插件开发人员联系以寻求帮助。
>我可以在多个网站上使用小部件吗?但是,您需要单独安装和激活它。
> widget是否会定期更新?
>
定期更新小部件,以确保其与WordPress和WordPress和WordPress和WordPress和添加新功能或修复任何错误。您可以从WordPress仪表板中检查更新。
>小部件是否支持国际域名?
是的,窗口小部件支持国际域名。它可以检索在各个国家 /地区注册和不同域扩展的域的WHOIS信息。>
>我可以使用小部件检查域的可用性吗?检查域的可用性。如果未注册该域,小部件将显示一条消息,指示该域可用。>
您可以使用小部件执行的搜索数量设置限制。但是,过度使用可能会导致WHOIS服务器暂时阻止IP,以防止滥用。建议负责任地使用小部件。>
以上是建立一个域Whois和社交数据WordPress小部件的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

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

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

能在三天内学会WordPress。1.掌握基础知识,如主题、插件等。2.理解核心功能,包括安装和工作原理。3.通过示例学习基本和高级用法。4.了解调试技巧和性能优化建议。
