1

JSON APIプラグインを使用して、投稿データをjson形式で正常に取得しています。

今、同じプラグインを使用して、人気のある (最も閲覧された) 投稿を取得したいと考えています。どうすればこれを達成できますか。

4

1 に答える 1

0

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 つのデータベース ヒットを追加しているため、パフォーマンスに影響することに注意してください。

于 2016-08-17T12:30:47.693 に答える