我正在使用此代码在wordpress中显示热门帖子,它工作正常,但我无法显示观看次数,请帮助:)
function wpb_set_post_views($postID) {
$count_key = 'wpb_post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
,这在单页
中wpb_set_post_views(get_the_ID());
这是为了查看帖子
<?php
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();
the_title();
endwhile;
?>
答案 0 :(得分:3)
要显示页面计数,您应使用元数据通过get_post_meta()
获取值。在循环中,您可以使用global $post
获取当前的帖子ID。
$popularpost = new WP_Query( array( 'posts_per_page' => 4, 'meta_key' => 'wpb_post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) );
while ( $popularpost->have_posts() ) : $popularpost->the_post();
// print the post title
the_title();
// get the count using the meta key wpb_post_views_count
$count = get_post_meta( $post->ID, 'wpb_post_views_count', true );
// echo the current count
echo $count;
endwhile;
您还可以简化记录综合浏览量的功能。您可以使用update_post_meta()
函数,而不是删除然后添加,如果它尚不存在,则添加该值,如果存在,则更新它。通过检查get_post_meta()
对false
的结果,我们可以确定是否需要将计数初始化为0.一旦我们得到一个值,将其更新为当前值+1。请注意,在高流量网站上,由于竞争条件同时更新多个请求的值,因此无法保证准确无误。
function wpb_set_post_views( $post_id ) {
// if $count is exactly false, set it to 0, otherwise use the value from the db
if ( false === ( $count = get_post_meta( $post_id, 'wpb_post_views_count', true ) ) ){
$count = 0;
}
// update the value +1 pageview
update_post_meta( $post_id, 'wpb_post_views_count', $count+1 );
}
答案 1 :(得分:0)
要计算帖子视图,首先要做的是将以下代码添加到WordPress主题 functions.php
<?php
/*
* Set post views count using post meta//functions.php
*/
function customSetPostViews($postID) {
$countKey = 'post_views_count';
$count = get_post_meta($postID, $countKey, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $countKey);
add_post_meta($postID, $countKey, '1');
}else{
$count++;
update_post_meta($postID, $countKey, $count);
}
}
?>
现在我们将在 single.php 中调用此函数来更新数据库中的计数值。
<?php
customSetPostViews(get_the_ID());//single.php
?>
如果我们想要显示帖子视图计数,现在在同一个 single.php 文件中,我们可以使用以下代码:
<?php
$post_views_count = get_post_meta( get_the_ID(), 'post_views_count', true );
// Check if the custom field has a value.
if ( ! empty( $post_views_count ) ) {
echo $post_views_count;
}
?>
现在通过帖子查看次数以降序显示所有热门帖子。使用此代码:
<?php//popular post query
query_posts('meta_key=post_views_count&posts_per_page=5&orderby=meta_value_num&
order=DESC');
if (have_posts()) : while (have_posts()) : the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile; endif;
wp_reset_query();
?>
快乐编码