WordPress文章、分类及标签页增加浏览量

WordPress

WordPress文章、分类及标签页增加浏览量

在 WordPress 中要实现站点统计功能的插件有很多,如 WP Statistics、WP-PostViews 等,但使用插件同时也会增加数据库查询以及页面加载的负担,下面通过简单的代码来实现文章页、分类页及标签页的浏览量统计。需要注意的是文章内页浏览需要使用到_post_views(),而分类及标签页使用的是 4.4 版本后新增加的_term_meta()

文章页

下面的代码加到functions.php中:

function set_post_views()
{
    if (!is_singular()) {
        return;
    }
    global $post;
    $post_id = intval($post->ID);
    $count_key = 'views';
    $views = get_post_custom($post_id);
    $views = intval($views['views'][0]);
    if (is_single() || is_page()) {
        if (!update_post_meta($post_id, 'views', $views + 1)) {
            add_post_meta($post_id, 'views', 1, true);
        }
    }
}
add_action('get_header', 'set_post_views');

function custom_the_views($post_id)
{
    $count_key = 'views';
    $views = get_post_custom($post_id);
    $views = intval($views['views'][0]);
    $post_views = intval(post_custom('views'));
    if ($views == '') {
        return 0;
    } else {
        return restyle_text($views);
    }
}

前台使用

<?php echo custom_the_views(get_the_ID());?>

调用即可。

分类页及标签页

下面的代码加到functions.php中:

function get_cate_tags_views( $term_id = null){
    if ( !$term_id ) {
        $term    = get_queried_object();
        $term_id = $term->term_id;
    }
    if ( !$term_id ) return;
    $view = get_term_meta( $term_id , 'cate_tags_views' , true ) ? get_term_meta( $term_id , '_views' , true ) : 0;
    return $view;
}

function set_cate_tags_views(){
    if ( !is_category() && !is_tag() ) return;
    $term    = get_queried_object();
    $term_id = $term->term_id;
    $view    = get_cate_tags_views($term_id);
    update_term_meta( $term_id, 'cate_tags_views' , $view + 1 );
}
add_action('get_header', 'set_cate_tags_views');

前台使用

<?php echo get_cate_tags_views();?>

调用即可。

© 声明:本站原创文章采用BY-NC-SA创作共用协议,转载时请标明本文地址;非原创(转载)文章版权归原作者所有。

RECENT POSTS

Stay Hungry. Stay Foolish.

数据库查询次数:11次,页面生成时间:0.034秒。