WordPress的功能一目了然,趋向于将博客系统的精髓降到应用程序开发系统的精髓。 迈向这一变化的第一步是引人注目的 2.9版本的自定义帖子类型。

今天,随着 WordPress REST API.

在本教程中,我将向您介绍WordPress REST API是什么,并向您展示如何使用它。

但是之前,如果您从未安装过WordPress发现 如何安装一个 WordPress博客 分7步 et 如何找到,安装和你的博客激活WordPress主题 

然后让我们回到为什么我们在这里

什么是REST API

简而言之,请理解WordPress REST API允许您与WordPress核心进行交互,而无需通过其图形界面。 这意味着内核和GUI分离。 借助此API,您可以例如创建新文章,而无需访问 仪表盘。 到4.4月发布XNUMX版时,REST API将包含在内核中。

鉴于本教程主题的性质,必须具有PHP语言和WordPress的良好知识。

本教程需要什么

要开始使用REST API,您将需要插件 REST API 以及WordPress的最新版本。 你拥有了它 ? 如果不, 为什么WordPress HTTP API的知识也将是进行远程调用的好公司。

通过单击此链接发现 如何在WordPress上安装(添加)插件

至于项目在本教程中,我们 将创建WordPress的本地安装 我们将从中通过REST API从我们的网站检索文章。 确保在生产网站上安装并激活了REST API插件。

现在,创建一个 小部件 在您的本地安装中。 这是基本代码:

/**
 * Plugin Name: REST API Widget Essai
 * Plugin URI: http://le-site-de-votre-widget-ici.com
 * Description: Ce widget récupère des articles à l'aide de l'API REST
 * Version: 1.0
 * Author: Votre nom
 * Author URI: http://votre-site.com
 */

class Mes_Articles_Widget extends WP_Widget {

    public function __construct() {
        $widget_details = array(
            'classname' => 'widget-essai-rest-api',
            'description' => 'Un widget qui récupère des articles à l'aide de l'API REST depuis un autre site'
        );

        parent::__construct( 'widget-essai-rest-api', 'REST API Widget Essai', $widget_details );

    }

    public function form( $instance ) {
        $title = ( !empty( $instance['title'] ) ) ? $instance['title'] : '';
        ?>

        <p>
            <label for="<?php echo $this->get_field_name( 'title' ); ?>">Title: </label>
            <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
        </p>

        <?php
    }
    public function widget( $args, $instance ) {
        echo $args['before_widget'];
        if( !empty( $instance['title'] ) ) {
            echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ) . $args['after_title'];
        }
        // le code fonctionnel du widget ici
        echo $args['after_widget'];
    }
}
add_action( 'widgets_init', function(){
     register_widget( 'Mes_Articles_Widget' );
});

在本地网站的插件目录中,创建一个名为 小部件 - 测试 - REST的API。 在此文件夹中,创建一个名为 小部件 - 测试 - 休息 - api.php 并粘贴上面的代码。

顺便发现 如何使用VersionPress管理和恢复WordPress版本

此代码包含插件标头(代码开头的注释),可让WordPress知道它是一个插件。 接下来是创建小部件的最小代码,增加了几行。 

我们将更加注重功能 小工具(),因为在其中构建了小部件的显示。 因此,在此函数内部,我们将使用HTTP API进行调用。

检索文章

我们将需要一些信息以查询生产网站或在线网站。 这些将在某种程度上构成我们在线网站的WordPress核心的问题。 这些是基本的API路径,使用的路由,使用的终止,标头和参数。

通过发现升华您的说明性图像 如何在WordPress博客上创建交互式图像

WordPress REST API的基本路径始终是 / WP-JSON / WP / v2 /。 因此,完整路径 http://votre-domaine.com/wp-json/wp/v2/.

用于检索项目的路线是 /职位。 完整的文章撰写途径是 http://votre-domaine.com/wp-json/wp/v2/posts.

每个路由可以具有许多终结点,具体取决于所使用的HTTP方法。 因此,文章的路线可以是 /职位/ 291。 这条路3的结尾:

的GET :检索文章
PUT :更新文章
删除 :删除文章。

使用HTTP API和GET终止,检索文章归结为一行代码:

$response = wp_remote_get( 'http://mysite.com/wp-json/wp/v2/posts/' );

通过发现使您的文章受欢迎 如何添加WordPress的分享按钮

如果答案是一个对象 WP_Error,我们结束函数的执行 小工具()如果没有,我们将使用函数检查答案主体的内容 wp_remote_retrieve_body 寻找以JSON格式编码的文章。 这就是函数的样子 小工具()  :

 public function widget( $args, $instance ) {
    $response = wp_remote_get( 'http://mysite.com/wp-json/wp/v2/posts/' );

    if( is_wp_error( $response ) ) {
        return;
    }

    $posts = json_decode( wp_remote_retrieve_body( $response ) );

    if( empty( $posts ) ) {
        return;
    }   
    echo $args['before_widget'];

    if( !empty( $instance['title'] ) ) {
        echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ) . $args['after_title'];
    }
    if( !empty( $posts ) ) {
        echo '<ul>';
        foreach( $posts as $post ) {
            echo '<li><a href="' . $post->link. '">' . $post->title->rendered . '</a></li>';
        }
        echo '</ul>';
    }
    echo $args['after_widget'];
}

在此示例中,有趣的是通过替换功能 wp_remote_get 否则,此示例将超出WordPress的范围。 这意味着我们可以从任何其他平台查询WordPress的核心,无论是Joomla,Prestashop,Drupal,Android还是IOS。

通过发现这些走得更远 8 WordPress插件将您的网站变成移动应用程序

因此,您可以创建连接到WordPress后台的本机移动应用程序。 REST API将WordPress变成了应用程序开发平台。

借助REST API更进一步

查询WordPress核心是为了与数据进行交互,占其使用量的90%。 但是仍然有一些值得探索的领域: 高速缓存 响应,身份验证和服务发现。

响应缓存

当我们在示例中检索诸如文章之类的信息时,优良作法是将其缓存,即将其复制到主叫终端上的某处,以避免其他请求将相同信息发送到服务器。 存在多种实现此目的的方法,包括 JP REST API CACHE中, 插件缓存, 和瞬变。

瞬态的想法是在本地复制具有到期日期的信息。 默认情况下,该副本将位于数据库中,但是某些实现允许将副本直接复制到内存中,这使还原操作更加快捷。

另见这些 7高级WordPress插件,可优化您网站的缓存

然后从本地数据库检索该信息,直到该信息到期为止,然后从远程网站重新调用该信息。 这是我们的小部件的修改版本,其中包含瞬态的概念(具有新功能):

public function get_remote_posts() {
    $posts = get_transient( 'remote_posts' );
    if( empty( $posts ) ) {
        $response = wp_remote_get( 'http://votre-domaine.com/wp-json/wp/v2/posts/' );
        if( is_wp_error( $response ) ) {
            return array();
        }

        $posts = json_decode( wp_remote_retrieve_body( $response ) );

        if( empty( $posts ) ) {
            return array();
        }

        set_transient( 'remote_posts', $posts, HOUR_IN_SECONDS );
    }

    return $posts;
}

public function widget( $args, $instance ) {
    $posts = $this->get_remote_posts();

    if( empty( $posts ) ) {
        return;
    }
    
    echo $args['before_widget'];

    if( !empty( $instance['title'] ) ) {
        echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ) . $args['after_title'];
    }

    echo '<ul>';
    foreach( $posts as $post ) {
        echo '<li><a href="' . $post->link. '">' . $post->title->rendered . '</a></li>';
    }
    echo '</ul>';

    echo $args['after_widget'];

}

认证方式

使用外部资源时,建议您标识自己。 这是通过身份验证过程完成的。 REST API提供了两种方法来标识自己:基本身份验证和OAuth。

基本认证 :这两种方法中的一种,比较简单。 它包括在每次请求时发送用户名和密码,这会带来很大的安全风险。 因此,不应将其尽可能多地用于生产中。

要使用基本身份验证,您必须安装并激活插件 基本认证. 然后,要进行身份验证的调用,请使用 基本的 并拨打电话:

$headers = array (
    'Authorization' => 'Basic ' . base64_encode( 'username:password' ),
);

$response = wp_remote_request( 'http://votre-domaine.com/wp-json/wp/v2/posts/1234/', array(
    'method' => 'DELETE',
    'headers' => $headers
));

另见 如何在WordPress上添加双因素身份验证

请谨慎使用此示例,因为如果您在网站上尝试使用该示例,则将删除ID为1234的文章(如果存在)。.

OAuth的 :从文档的角度来看,这种方法仍然晦涩难懂,需要您安装并激活插件 OAuth1。 此身份验证方法的实现包括安装和组合使用 WP-CLI,WordPress的命令行和 WP CLI客户端.

命令行界面的引入本身并不是问题,但是问题在于缺少命令列表。

服务发现

学习任何API的一部分都变得熟悉其选项。 因此,我建议您查看有关 服务发现 WordPress REST API文档。

在那里,您将找到与文章,帖子类型,媒体,元数据以及无法删除用户或其他小问题之类的不规则行为进行交互的方法。

请记住,这是一个正在进行的工作,已经非常有趣了。

谁使用WordPress REST API?

在所有方面都有先驱者,WordPress REST API也不例外。 以下是使用API​​的少数公司的简短列表,尽管它还很年轻:

使人类 使用API​​为希望为前端提供更灵活功能的客户构建网站。

WP Live搜索 是一个免费插件,利用该API的搜索功能。

editus 是一个高级插件,使用API​​进行前端编辑。

D'的après 谁在用这个东西? 其他人和公司正在实施WordPress REST API来构建移动应用程序。

尽管还很年轻,但WordPress REST API有望将WordPress转换为应用程序开发平台中的主要功能。

您是否还在使用WordPress REST API?  我们希望对此主题有所了解。

您如何找到它提供的机会? 在我们的评论部分与我们分享您的反应。

还发现一些高级WordPress插件  

您可以使用其他 WordPress插件 赋予现代外观并优化您的博客或网站的处理。

我们在这里为您提供了一些高级WordPress插件,它们将帮助您实现这一目标。

1。 WordPress终极重定向

“ WordPress Ultimate Redirect”插件是您管理所有重定向,404,网站迁移和/或域更改或转移需求所需的唯一解决方案。

WordPress终极重定向插件

有一些插件可以执行插件的功能,但是不能同时执行所有操作。 该插件提供所有常用的404重定向功能,以及我们最喜欢的“自动重定向到最接近的URL匹配”。

下载 | 演示 | 虚拟主机

2。 Leadeo

您知道吗,在目标网页上使用视频可以将转化次数提高80%以上。 同样,在销售页面中,46%以上。 Leadeo可以帮助您从在您博客上观看视频的人们那里获得更多潜在客户和销售。Leadeo

有了这个插件,您可以 制作一段视频 对目标受众有用,通过电子邮件在您的社交网络和联系人列表上分享,并发送一些广告。 所以人们会看到视频并喜欢它。

由于视频产生了预期的兴趣,因此向观看者提供了:

  • 注册您的电子邮件列表以获得很棒的提示
  • 与您联系
  • 分享您在视频中所说的有趣的事情
  • 与他们的朋友分享视频
  • 点击号召性用语按钮
  • 和其他

并且所有这些操作都在视频的右侧提供。

下载 | 演示 | 虚拟主机

3。 CommentPress

CommentPress是功能强大的WordPress紧凑插件,可让您快速轻松地插入,编辑和删除评论。 CommentPress使用Ajax,jQuery和PHP使访问者无需重新加载页面即可插入评论。commentpress ajax注释插入编辑和删除注释

该插件具有许多自定义选项,最终使它具有所需的外观。 它具有验证码来阻止垃圾邮件,并为您的评论部分带来了更高的安全性。

它的主要特点是:易于插入评论,用户可以回复特定评论,评论分页,对评论部分的管理进行全面管理,易于插入图像的按钮,视频和链接,完全响应式的布局,用于保护表单并防止垃圾邮件的验证码等等。

下载 | 演示 | 虚拟主机

推荐资源

查找有关其他推荐资源的信息,以帮助您构建和管理网站。

结论

有! 本教程就是这样。 我们希望本教程向您展示了如何使用WordPress REST API。 不要犹豫 与您最喜欢的社交网络上的朋友分享此文章

但是,您也可以咨询我们的 RESSOURCES,如果您需要更多的元素来执行创建Internet网站的项目,请参考我们关于 WordPress博客创建。

如果您有任何建议或意见,请将其留在我们的部分 评论.

...