Jetpack là plugin có lẽ đã quá quen thuộc với các webmaster khi xây dựng trang web bằng WordPress. Đây là một plugin all in one, tổng hợp rất nhiều các module, cho phép bạn thực hiện các chức năng khác nhau mà đáng lẽ ra bạn phải cài cả tá plugin riêng lẻ để sử dụng.
Module thống kê lượt xem bài viết (Jetpack Post Views) có lẽ là một module mà tôi thích nhất, thống kê khá chi tiết số lượt xem cũng nguồn của lượt xem đến từ đâu. Tuy nhiên các thống kê này chỉ xuất hiện trên trang thống kê của nó, và bạn muốn xem thì phải vào trang này. Chính vì sự bất tiện này mà tôi có ý tưởng là làm thế nào để lượt xem bài viết hiển thị ngay trong trang WordPress Posts. Sau một thời gian hỏi bác Google và điều đó đã thành sự thật.
Hiển thị số lượt xem bài viết trong WordPress không dùng plugin
Để làm được điều này, rất đơn giản, các bạn chỉ thêm đoạn code vào trong file functions.php của theme đang sử dụng là xong.
function cswp_add_views_column( $cols ) {$cols['pageviews'] = 'Views';return $cols;}add_filter( 'manage_edit-post_columns', 'cswp_add_views_column' );function cswp_add_views_colurdc_data( $colname ) {global $post;if ( 'pageviews' !== $colname )return false;if ( ! ( class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'stats' ) ) ) {echo 'Error';return false;}if ( ! function_exists( 'stats_get_csv' ) ) {echo 'Error';return false;}$view_count = get_post_meta( $post->ID, '_jetpack_post_views_count', true );$view_count_created = absint( get_post_meta( $post->ID, '_jetpack_post_views_count_created', true ) );if ( ! $view_count || time() > $view_count_created + 3600 ) {$postviews = stats_get_csv( 'postviews', "post_id={$post->ID}" );if ( ! $postviews ) {echo 'Error';return false;}update_post_meta( $post->ID, '_jetpack_post_views_count', absint( $postviews[0]['views'] ) );update_post_meta( $post->ID, '_jetpack_post_views_count_created', absint( time() ) );}echo '<strong>' . number_format( absint( $postviews[0]['views'] ) ) . '</strong>';}add_action( 'manage_posts_custom_column', 'cswp_add_views_colurdc_data' );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function cswp_add_views_column( $cols ) {
$cols['pageviews'] = 'Views';
return $cols;
}
add_filter( 'manage_edit-post_columns', 'cswp_add_views_column' );
function cswp_add_views_colurdc_data( $colname ) {
global $post;
if ( 'pageviews' !== $colname )
return false;
if ( ! ( class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'stats' ) ) ) {
echo 'Error';
return false;
}
if ( ! function_exists( 'stats_get_csv' ) ) {
echo 'Error';
return false;
}
$view_count = get_post_meta( $post->ID, '_jetpack_post_views_count', true );
$view_count_created = absint( get_post_meta( $post->ID, '_jetpack_post_views_count_created', true ) );
if ( ! $view_count || time() > $view_count_created + 3600 ) {
$postviews = stats_get_csv( 'postviews', "post_id={$post->ID}" );
if ( ! $postviews ) {
echo 'Error';
return false;
}
update_post_meta( $post->ID, '_jetpack_post_views_count', absint( $postviews[0]['views'] ) );
update_post_meta( $post->ID, '_jetpack_post_views_count_created', absint( time() ) );
}
echo '<strong>' . number_format( absint( $postviews[0]['views'] ) ) . '</strong>';
}
add_action( 'manage_posts_custom_column', 'cswp_add_views_colurdc_data' );
Chúc các bạn thành công.
Nguồn: Việt Hùng admin https://chiasewp.com/
Bình Luận