Ở bài viết này mình sẽ hướng dẫn các bạn cách để hiển thị lượt xem trong bài viết. Ở đây mình không dùng plugin, mà sẽ chèn code trực tiếp vào file function.php của child theme Flatsome nhé.

Code đếm và hiển thị số lượt xem

Bước 1: Code đếm và hiển thị lượt xem trong db

Thêm đoạn code dưới đây vào file function.php

//B11: Codfe.com code lấy lượt xem
function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "01 lượt xem";
}
return $count.' lượt xem';
}

//B12: Codfe.com code đếm lượt xem
function setPostViews($postID) {
$count_key = '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);
}
}

//B13: Codfe.com code hiển thị số lượt xem trong dashboard
add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
$defaults['post_views'] = __('Views');
return $defaults;
}
function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
echo getPostViews(get_the_ID());
}
}

Bước 2: Thêm code hiển thị lượt xem

Đây là bước hiển thị lượt xem ra bài viết

//B21: Codfe.com Đếm view trong post
function codfe_count(){
if ( is_single() ) :
setPostViews(get_the_ID());
endif;
}
add_action( 'flatsome_after_header', 'codfe_count' );


//B22: Codfe.com Overwrite hàm flatsome_posted_on để viết lại mô tả post
// Prints HTML with meta information for the current post-date/time and author.
function flatsome_posted_on() {
$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
}

$time_string = sprintf( $time_string,
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() ),
esc_attr( get_the_modified_date( 'c' ) ),
esc_html( get_the_modified_date() )
);

$posted_on = sprintf(
esc_html_x( 'Posted on %s', 'post date', 'flatsome' ),
'<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>'
);

$byline = sprintf(
esc_html_x( 'by %s', 'post author', 'flatsome' ),
'<span class="meta-author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . esc_html( get_the_author() ) . '</a></span>'
);

echo
'<div class = "tp-post-meta">
<span class="posted-on"><i class="fa fa-address-book-o" aria-hidden="true"> </i>' . $posted_on . '|</span>
<span class="byline"><i class="fa fa-user-o" aria-hidden="true"> </i>' . $byline . '|</span>
<span class="tp-post-view"><i class="fa fa-eye" aria-hidden="true"> </i>'.getPostViews(get_the_ID()).'|</span>

</div>';

}

Các bạn chép toàn bộ code này vào function.php ở theme child nhé.

Credit: Codfe

Đăng ký tư vấn Messenger Zalo