Я хочу отобразить популярный пост с остальным API, но я не знаю, чтобы получить посты с самым просматриваемым.
Я использую update_post_meta
и получаю маршрут, как показано ниже.
<?php
function post_view_count() {
if ( is_single() ) {
$count = get_post_meta( get_the_ID(), 'post_view_count', true ) ?: 0;
if ( ! $count ) {
$count = 1; // if the meta value isn't set, use 1 as a default
}
$count++;
update_post_meta( get_the_ID(), 'post_view_count', $count );
}
}
add_action( 'wp_head', 'post_view_count' );
?>
<?php
// Register a REST route
add_action( 'rest_api_init', function () {
//Path to meta query route
register_rest_route( 'popular/v2', '/pp/', array(
'methods' => 'GET',
'callback' => 'custom_meta_query_dinhmenh'
) );
});
// Do the actual query and return the data
function custom_meta_query_dinhmenh(){
// Set the arguments based on our get parameters
$args = array (
array(
'relation' => $_GET['meta_query'][0]['relation'],
'key' => $_GET['meta_query'][0]['key'],
'value' => $_GET['meta_query'][0]['value'],
'show_in_rest' => true,
//'compare' => '=',
),
);
// Run a custom query
$meta_query = new WP_Query($args);
if($meta_query->have_posts()) {
//Define and empty array
$data = array();
// Store each post's title in the array
while($meta_query->have_posts()) {
$meta_query->the_post();
$data[] = get_the_title();
}
// Return the data
return $data;
} else {
// If there is no post
return 'No post to show';
}
}
?>
Можете ли вы помочь мне написать условие для отображения наиболее просматриваемых сообщений на основе post_view_count
Большое спасибо.