我不理解“post_views_count”指令的行为。
我创建了一个短代码,它应该会显示我过去2年(从2021年到今天)最受关注的帖子。
2022年的所有帖子都被完全忽略,而2021年的帖子则打印在屏幕上,但显示0作为值...
我在博客上发表了数千篇文章,并且多年来访问量很大。我不明白为什么我的查询没有看到这个值,在最好的情况下,它返回给我0。
是不是我漏掉了什么或者我不明白post_views_count是干什么的?
遵循代码:
add_shortcode('lista_post_piu_visti', 'lista_post_most_viewed_fn');
function lista_post_most_viewed_fn($atts) {
$args_shortcode = shortcode_atts(array(
'n_post' => '',
'colore_titolo' => ''
), $atts);
$output = '';
$args_query = array(
'post_type' => 'post',
'posts_per_page' => 12,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'date_query' => array(
array(
'after' => '2 January 2021'
)
)
);
$custom_posts = new WP_Query($args_query);
if ($custom_posts->have_posts()) {
$all_posts = $custom_posts->found_posts;
while ($custom_posts->have_posts()) {
$custom_posts->the_post();
$riassunto = get_the_excerpt();
$titolo = get_the_title();
$url_articolo = get_the_permalink();
$output .= '<div class="box_min">';
$output .= '<div class="img_lat"><a href="' . $url_articolo . '" title="' . $titolo . '">' . get_the_post_thumbnail(get_the_ID(), 'thumbnail') . '</a></div>';
$output .= '<h2><a href="' . $url_articolo . '" title="' . $titolo . '">' . $titolo . '</a></h2>';
$output .= '<h3>' . get_post_meta(get_the_ID(), 'post_views_count', true) . '</h3>';
$output .= '<div class="autore-box"><span>' . get_the_date() . '</span></div>';
$output .= '</div>';
}
wp_reset_postdata();
}
$output = $output ?? '<strong class="alert">Sorry, no post found.</strong>';
return $output;
}
add_shortcode('lista_post_by_id_prima_in_evidenza', 'lista_post_by_id_prima_in_evidenza_fn');
1条答案
按热度按时间jvlzgdj91#
dr
post_views_count
不是标准的。根据示例代码中的查询,您希望
post_views_count
在wp_postmeta中显示为具有meta_key = 'post_views_count'
的post元数据的整数值项。但是这个元数据项并没有被WordPress核心中的任何东西插入或维护。所以,你必须为此目的使用一些插件。如果你没有看到任何关于2022年的东西,那可能是你在2022年初停止使用那个插件。而且,你在2021年的帖子中的那个项是零。
无论如何,如果你的网站没有更新元数据,你将无法重新生成它,除非可能从Web服务器日志--即使你有那么久以前的日志,这也是一项痛苦的任务。(GDPR不希望你存储那么长时间的日志。
根据https://WPDirectory.net,quite a few plugins提到
post_views_meta
,您使用哪一个?