快网指南

wordpress 无插件实现文章浏览次数

首先,给文章添加自定义字段views,并且页面加载时就views值加1,在functions.php添加代码:

if(!function_exists('record_visitors')){
 function record_visitors(){
 if (is_singular())
 {
 global $post;
 $post_ID = $post->ID;
 if($post_ID)
 {
 $post_views = (int)get_post_meta($post_ID, 'views', true);
 if(!update_post_meta($post_ID, 'views', ($post_views+1)))
 {
 add_post_meta($post_ID, 'views', 1, true);
 }
 }
 }
 }
}

add_action('wp_head', 'record_visitors');

前端显示实现,在functions.php添加代码:

function post_views($before = '(浏览 ', $after = ' 次)', $echo = 1){
 global $post;
 $post_ID = $post->ID;
 $views = (int)get_post_meta($post_ID, 'views', true);
 if ($echo) echo $before, number_format($views), $after;
 else return $views;
}

按浏览量对文章进行排序

<ul>
<?php 
//http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters
 $loop = new WP_Query( array( 'posts_per_page' => 5, 'meta_key'=>'views', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) ); 
 while ( $loop->have_posts() ) : 
 $loop->the_post();?>
 <li>
 <a href="<?php the_permalink() ?>" title="<?php the_title() ?>"><?php the_title() ?></a>
 <?php post_views(); ?>
 </li>
<?php endwhile; ?>
</ul>

官方样例,显示文章类型为 ‘Product’,按自定义字段 ‘Price’排序:

$args = array(
	'post_type' => 'product',
	'orderby'   => 'meta_value_num',
	'meta_key'  => 'price',
);
$query = new WP_Query( $args );

参考资料

立即领取

最高 ¥2000 红包 限量

云服务器、主机等产品通用,可叠加官网常规优惠使用 | 限时领取

发表评论

邮箱地址不会被公开。 必填项已用*标注

建站!你有充足的理由选择我们

世界上超过30%的网站是由WordPress搭建,而我们是国内最靠谱的WordPress开发商