Как отобразить количество просмотров записи
14 мая 2014 г., 07:39:16
Просмотры: 30.7K
Голосов: 2
Я пытаюсь отобразить количество просмотров записей.
Я использовал следующую функцию для отображения количества просмотров, но получаю одинаковое значение для всех записей в цикле. Не получается получить корректное количество просмотров.
Функция:
<?php
// функция для отображения количества просмотров
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 "0 Просмотров";
}
return $count.' Просмотров';
}
// функция для подсчета просмотров
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);
}
}
// Добавляем столбец в админ-панель WordPress
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'] = __('Просмотры');
return $defaults;
}
function posts_custom_column_views($column_name, $id){
if($column_name === 'post_views'){
echo getPostViews(get_the_ID());
}
}
?>
Код цикла:
<ul>
<?php $the_query = new WP_Query( 'showposts=5' ); ?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
<?php echo getPostViews(get_the_ID()); ?> //код отображения просмотров
<?php echo substr(strip_tags($post->post_content), 0, 250);?></li>
<?php endwhile;?>
</ul>
Нужны предложения по отображению корректного количества просмотров записей в цикле while

Jack Torris
251
Комментарии
Все ответы на вопрос
3
1
Добавьте это в single.php, убедившись, что вставляете код внутри цикла.
<?php setPostViews(get_the_ID()); ?>
Наконец, чтобы отобразить количество просмотров записи, добавьте следующий код в нужное место:
<?php echo getPostViews(get_the_ID()); ?>
.
<?php
// функция для отображения количества просмотров записи.
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 "0 просмотров";
}
return $count.' просмотров';
}
// функция для подсчета просмотров.
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);
}
}
?>

Abdo-Host
236
10 апр. 2017 г. 12:06:41
Комментарии
Я использовал ваш код, и он работает нормально, но я не понимаю, почему у нас 2 запроса? https://uupload.ir/files/bt01_screen_shot_2020-12-01_at_4.57.55_am.png

1 дек. 2020 г. 03:30:16
Похожие вопросы