JSON APIプラグインを使用して、投稿データをjson形式で正常に取得しています。
今、同じプラグインを使用して、人気のある (最も閲覧された) 投稿を取得したいと考えています。どうすればこれを達成できますか。
JSON APIプラグインを使用して、投稿データをjson形式で正常に取得しています。
今、同じプラグインを使用して、人気のある (最も閲覧された) 投稿を取得したいと考えています。どうすればこれを達成できますか。
WordPress は各投稿のビュー数を保存しないため、これは JSON API だけでは不可能です。次のように、ページの読み込みごとに post_meta に保存されているカウントを実行する必要があります。
function post_view_count() {
if ( is_single() ) {
$count = get_post_meta( get_the_ID(), 'post_view_count', true ) ?: 0;
update_post_meta( get_the_ID(), 'post_view_count', $count++ );
}
}
add_action( 'wp_head', 'post_view_count' );
次に、「post_view_count」キーで降順にソートされた 1 つの投稿の API をクエリできます。API で post_meta をクエリできるようにするには、次のようなものを追加する必要がある場合があります。
function json_allow_meta_query( $valid_vars ) {
$valid_vars = array_merge( $valid_vars, array( 'meta_key', 'meta_value', 'meta_compare' ) );
return $valid_vars;
}
add_filter( 'rest_query_vars', 'json_allow_meta_query' );
ただし、ポスト ロードごとに 2 つのデータベース ヒットを追加しているため、パフォーマンスに影響することに注意してください。