機能ごとに、WordPressはブログシステムのマントルをアプリケーション開発システムのマントルに落とす傾向があります。 この変更に向けた最初の注目すべきステップは、導入でした 2.9バージョンのカスタム投稿タイプ。

今日、変革は次の到来とともに続きます WordPress REST API.

このチュートリアルでは、WordPress REST APIとは何かを説明し、その使用方法を示します。

しかし、前に、WordPressをインストールしたことがない場合は、 インストール方法 WordPressのブログ 7つのステップで et あなたのブログにワードプレスのテーマを、見つけインストールしてアクティブにする方法 

それでは、私たちがここにいる理由に戻りましょう

RESTAPIとは

簡単に言うと、WordPress REST APIを使用すると、グラフィカルインターフェイスを経由せずにWordPressのコアと対話できることを理解してください。 これは、カーネルとGUIの分離を意味します。 このAPIを使用すると、たとえば、にアクセスしなくても、新しい記事を作成できます。 タブロー・ド・ボルド。 REST APIは、バージョン4.4がXNUMX月までにリリースされたときにカーネルに含まれる予定です。

このチュートリアルの主題の性質を考えると、PHP言語とWordPressの十分な知識が必要です。

このチュートリアルには何が必要ですか

REST APIの使用を開始するには、プラグインが必要です REST API だけでなく、WordPressの最新バージョン。 あなたはそれを持っています ? そうでない場合は、 理由を知りますWordPress HTTP APIの知識も、リモート呼び出しを行うための優れた企業になります。

このリンクをクリックして発見する WordPressにプラグインをインストール(追加)する方法

このチュートリアルのためのプロジェクトとして、我々 WordPressのローカルインストールを作成します そこから、RESTAPIを介してWebサイトから記事を取得します。 本番WebサイトにRESTAPIプラグインがインストールされ、アクティブ化されていることを確認してください。

次に、 ウィジェット ローカルインストールで。 基本的なコードは次のとおりです。

/**
 * 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' );
});

ローカルWebサイトのプラグインディレクトリで、という名前のフォルダーを作成します ウィジェット・テスト休止-API。 このフォルダーに、という名前のファイルを作成します ウィジェット・テスト休止-api.php 上記のコードを貼り付けます。

ちなみに発見 VersionPressでWordPressのバージョンを管理および復元する方法

このコードには、プラグインヘッダー(コードの先頭にあるコメント)が含まれており、WordPressにプラグインであることを知らせます。 次に、ウィジェットを作成するための最小限のコードを数行増やします。 

機能をより重視します ウィジェット()、ウィジェットの表示が構築されるのはこの内部にあるためです。 したがって、HTTPAPIを使用して呼び出しを行うのはこの関数の内部です。

記事を取得する

本番WebサイトまたはオンラインWebサイトを照会するには、いくつかの情報が必要になります。 これらは、ある意味で、当社のオンラインWebサイトのWordPressコアに提起される質問を構成します。 これらは、基本的なAPIパス、使用されるルート、使用される終端、ヘッダー、およびパラメーターです。

発見してイラスト画像を昇華させる WordPressブログでインタラクティブな画像を作成する方法

基本的なWordPressRESTAPIパスは常に / 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 :記事を更新する
DELETE :記事を削除します。

HTTP APIとGETターミネーションを使用すると、記事の取得はXNUMX行のコードになります。

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

発見してあなたの記事を人気にする ワードプレスの共有ボタンを追加する方法

答えがオブジェクトの場合 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の範囲外になります。 つまり、Joomla、Prestashop、Drupal、Android、IOSなど、他のプラットフォームからWordPressコアにクエリを実行できます。

これらを発見してさらに進む あなたのウェブサイトをモバイルアプリケーションに変える8 WordPressプラグイン

したがって、WordPressバックオフィスに接続されたネイティブモバイルアプリケーションを作成できます。 REST APIは、WordPressをアプリケーション開発プラットフォームに変えます。

RESTAPIをさらに活用する

データを操作する目的でWordPressコアにクエリを実行すると、その使用量の90%を占めます。 しかし、探索するのに興味深い領域がまだいくつかあります。 キャッシュされた 応答、認証、およびサービスの検出。

応答キャッシュ

この例の記事などの情報を取得するときは、それらをキャッシュすることをお勧めします。つまり、同じ情報に対する他の呼び出しを回避するために、呼び出し元の端末のどこかにコピーします。サーバー。 これを達成するためのさまざまなアプローチが存在します。 JP REST API CACHEプラグインキャッシュ, そして、トランジェント。

一時的な考え方は、有効期限を付けて情報をローカルにコピーすることです。 デフォルトでは、コピーはデータベースにありますが、一部の実装ではメモリに直接コピーできるため、復元操作がさらに高速になります。

これらもご覧ください Webサイトのキャッシュを最適化する7プレミアムWordPressプラグイン

次に、情報は有効期限が切れるまでローカルデータベースから取得され、そこでリモートWebサイトから呼び出されます。 これは、一時的な概念を含むウィジェットの修正バージョンです(新しい関数を使用)。

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のXNUMXつの方法で自分自身を識別します。

基本認証 :XNUMXつの方法のうち、これはより単純です。 これは、リクエストごとにユーザー名とパスワードを送信することで構成されており、セキュリティ上の大きなリスクが伴います。 このため、本番環境では可能な限り使用しないでください。

基本認証を使用するには、プラグインをインストールしてアクティブ化する必要があります 基本認証. 次に、認証された呼び出しを行うには、ヘッダーを次のように宣言します。 基本 そして電話をかけます:

$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に二重要素認証を追加する方法

この例には注意してください。Webサイトで試してみると、IDが1234の記事が存在する場合は削除されます。.

OAuth :この方法は、ドキュメントの観点からはまだわかりにくいため、プラグインをインストールしてアクティブにする必要があります OAuth1。 この認証方法の実装には、インストールとの併用が含まれます WP-CLI、WordPressのコマンドラインと WP CLIクライアント.

コマンドラインインターフェイスの導入自体は問題ではありませんが、問題となるのはコマンドリストの欠如です。

サービス発見

APIの学習の一環として、そのオプションに慣れてきています。 だから私はあなたが上の部分をチェックすることをお勧めします サービス発見 WordPress RESTAPIドキュメントの

そこには、記事、投稿の種類、メディア、メタデータ、およびユーザーを削除できないなどの不規則性やその他の小さな懸念事項を操作する方法があります。

これはすでに非常に興味深い進行中の作業であることを忘れないでください。

WordPress REST APIを使用しているのは誰ですか?

先駆者がいるすべてのものにおいて、WordPress RESTAPIも例外ではありません。 若くてもAPIを利用している数社の短いリストを次に示します。

作られた人間 APIを使用して、フロントエンドに対してより柔軟なものを必要とする顧客向けのWebサイトを構築します。

WPのLive Search は、検索機能にAPIを利用する無料のプラグインです。

editus フロントエンド編集機能にAPIを使用するプレミアムプラグインです。

D'アフター 誰がこれを使っているの? 他の人々や企業は、モバイルアプリケーションを構築するためにWordPress RESTAPIを実装しています。

その若さにもかかわらず、WordPress REST APIは、WordPressをアプリケーション開発プラットフォームに変換する際の主要な機能として大きな期待を抱いています。

WordPress REST APIも使用していますか?  この件についての印象をお願いします。

それが提供する機会をどのように見つけますか? コメントセクションであなたの反応を私たちと共有してください。

プレミアムWordPressプラグインもご覧ください  

他にも使えます WordPressのプラグイン モダンな外観を与え、ブログやウェブサイトの取り扱いを最適化します。

ここでは、そのためのプレミアムWordPressプラグインを提供しています。

1。 ワードプレスアルティメットリダイレクト

「WordPressUltimateRedirect」プラグインは、すべてのリダイレクト、404、サイトの移行、ドメインの変更または転送のニーズを処理するために必要な唯一のソリューションです。

Wordpress究極のリダイレクトプラグイン

プラグインが行うことを実行するプラグインがありますが、すべてを同時に実行するわけではありません。 このプラグインは、通常の404リダイレクト機能すべてに加えて、お気に入りの「最も近いURL一致への自動リダイレクト」を提供します。

ダウンロード | デモ | ウェブホスティング

2。 Leadeo

ランディングページで動画を使用すると、コンバージョンが80%以上改善されることをご存知ですか。 同様に、46%を超える販売ページ。 Leadeoは、ブログでビデオを見ている人々からより多くの見込み客と売り上げを得るのに役立ちます。Leadeo

このプラグインのおかげで、次のことができます ビデオを作ります ターゲットを絞ったユーザーに役立つ情報をソーシャル ネットワークや電子メール経由の連絡先リストで共有したり、広告を送信したりできます。 そのため、人々はビデオを見て気に入ってくれるでしょう。

ビデオは期待される興味を生み出すので、それを見た人は提供されます:

  • メーリングリストにサインアップして、素晴らしいヒントを入手してください
  • あなたに連絡する
  • あなたがビデオで言った興味深いことを共有します
  • 友達とビデオを共有する
  • アクションへの呼び出しボタンをクリックします
  • そして、他の

そして、これらのアクションはすべて、ビデオのすぐ右側に表示されます。

ダウンロード | デモ | ウェブホスティング

3。 CommentPress

CommentPressは、コメントをすばやく簡単に挿入、編集、削除できる強力なWordPressコンパクトプラグインです。 CommentPressは、Ajax、jQuery、およびPHPを使用して、訪問者がページをリロードすることなくコメントを挿入できるようにします。Commentpress ajaxコメント挿入コメントの編集と削除

このプラグインには多くのカスタマイズオプションがあり、最終的には希望の外観になります。 スパムをブロックするためのキャプチャがあり、コメントセクションのセキュリティを強化します。

その主な機能は次のとおりです。コメントの簡単な挿入、ユーザーが特定のコメントに返信する可能性、コメントのページ付け、コメントセクションの管理の完全な管理、画像の簡単な挿入のためのボタン、ビデオとリンク、完全に応答性の高いレイアウト、フォームを保護してスパムを防ぐためのCaptchaなど。

ダウンロード | デモ | ウェブホスティング

推奨リソース

ウェブサイトの構築と管理に役立つ他の推奨リソースをご覧ください。

まとめ

そこ! このチュートリアルは以上です。 このチュートリアルで、WordPress RESTAPIの使用方法が説明されたことを願っています。 お気軽に お気に入りのソーシャルネットワークでこの記事を友達と共有する

しかし、あなたも私たちに相談することができます ressources、インターネットサイトの作成プロジェクトを実行するためにより多くの要素が必要な場合は、 WordPressブログの作成。

提案や意見がある場合は、セクションに残してください commentaires.

...