我正在使用 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' );
然后您可以在 API 中查询一篇帖子,并按“post_view_count”键降序排序。您可能需要添加类似的内容以允许使用 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' );
但是,请注意,您为每个后加载添加了两次数据库命中,这将影响性能。