WordPressも知ってるの?
WordPressでRestAPI出力したデータを表示するブログを作ってるんだけど、restAPIに個別ページのページビュー数を入れて表示させたいんだけどどうやればいいかわかりますか?ページビュー数はプラグインなどで取れるけど、それをRestAPIで出力させるところまでの情報が見つかりません
WordPressでページビュー数をREST APIに追加する方法を説明します。以下の手順に従ってください。
- ページビュー数を取得するプラグインをインストール:
まず、WordPressにページビュー数を取得できるプラグインをインストールし、有効化してください。一例として、「Post Views Counter」というプラグインがあります。 - functions.phpにカスタムコードを追加:
次に、functions.phpファイルにカスタムコードを追加して、ページビュー数をREST APIに追加します。以下のコードは、「Post Views Counter」プラグインを使用している場合の例です。
function add_pageviews_to_api() {
register_rest_field( 'post', 'pageviews', array(
'get_callback' => function ( $post_arr ) {
// $post_arr['id'] には、現在の投稿のIDが入っています。
$post_id = $post_arr['id'];
$pageviews = get_post_meta( $post_id, 'post_views_count', true );
return intval( $pageviews );
},
'schema' => array(
'description' => 'ページビュー数',
'type' => 'integer',
),
));
}
add_action( 'rest_api_init', 'add_pageviews_to_api' );
このコードは、投稿データのREST APIレスポンスに「pageviews」というキーでページビュー数を追加します。あなたのプラグインに合わせてコードを変更してください。
3.REST APIレスポンスを確認:
上記のコードをfunctions.phpに追加した後、REST APIのURL(例:https://example.com/wp-json/wp/v2/posts/1)にアクセスし、「pageviews」キーが追加されていることを確認してください。
ありがとう。プラグインを入れてAPIに「pageview」が出ているのを確認できました。ただ、このPost Views Counter というプラグインはアクセスをカウントする方法が3つあり、PHP、JS、RestAPIを使えるんだけど、WPのテーマは使ってないのだからRestAPIで取得でOK?これはRESTAPIが読み込まれたらカウントするのかな?今試しに読み込んだけど反映まで時間かかるのかな
「Post Views Counter」プラグインのカウント方法をREST APIに変更する場合、次の手順で設定を変更してください。
- プラグイン設定を開く:
WordPress管理画面から、「設定」>「Post Views Counter」をクリックしてプラグインの設定ページを開きます。 - カウント方法を変更:
「カウント方法」のセクションで、「REST API」を選択し、「変更を保存」をクリックします。
これで、「Post Views Counter」プラグインがREST APIでアクセスをカウントするようになります。ただし、REST APIでカウントされるのはAPIエンドポイントが直接アクセスされた場合です。通常のページ表示ではカウントされません。
カウントを適切に行うためには、フロントエンドのJavaScriptで、各ページが表示されたタイミングで、そのページのREST APIエンドポイント(例:https://example.com/wp-json/wp/v2/posts/1)を呼び出す必要があります。これにより、ページが表示されるたびにAPIエンドポイントがアクセスされ、カウントが正確に行われます。
ただし、カウントの反映には若干のタイムラグが発生することがあります。リアルタイムでの反映を求める場合、別のプラグインやカスタム実装を検討してください。