Intereting Posts
Предупреждение: call_user_func_array () ожидает, что параметр 1 будет действительным обратным вызовом, func Создайте собственный URL-адрес для архива блога Отменить фильтр комментариев? Обмен доходами от рекламы среди пользователей мультисайта в совместной модели? Вычислить время простоя и удалить маркер входа, если превышен тайм-аут простоя не может использовать метод page_test для проверки разбивки на страницы Записи с сообщениями, которые содержат по крайней мере 3 тега текущего сообщения как я могу скрыть категорию? Одиночная случайная запись на главной странице Сообщение об ошибке «Cheatin 'uh?» В многострочных каталогах темы Разрешить только одно сообщение с определенным значением мета Перенаправление пользователя для входа в систему, если он не вошел в систему, на определенных страницах С точки зрения разработчика, каковы различия между страницами и сообщениями? как я могу создать пользовательский запрос для получения всех пользователей и связанный с ним пост на основе поля postmeta? Получать сообщение id out loop: Notice: попытка получить свойство не-объекта

Сортировка сообщений в соответствии с количеством просмотров не работает

Я использую фрагмент кода ниже, чтобы получить количество просмотров каждого сообщения на моем sidebar.php. все работает, но сортировки нет. также он не получает 4 сообщения, он показывает только 1 сообщение, хотя я написал 'numberposts' => 4 . Я думаю, проблема возникает из почтового запроса. потому что, когда я нахожусь на главной странице, он показывает последний пост сайта не в моем настраиваемом типе сообщений. (например, сообщение «Hello World!»), когда я нахожусь на странице архива, он дает последнее сообщение о моем настраиваемом типе сообщений. Может ли кто-нибудь найти проблему? благодаря

ФУНКЦИЯ :

 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 to count views. 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); } } 

КОД, КОТОРЫЙ Я ДОБАВЛЯЮТ В ОДИН. PHP:

 <?php setPostViews(get_the_ID()); ?> 

КОД Я ИСПОЛЬЗУЮТ КАК ПОЧТОВЫЙ ЗАПРОС НА ПОЛУЧЕНИЕ И СОРТИРОВАННЫЕ ПОЧТЫ:

 query_posts(array( 'numberposts' => 4, /* get 4 posts, or set -1 for all */ 'orderby' => 'meta_value_num', /* this will look at the meta_key you set below */ 'meta_key' => 'post_views_count', 'order' => 'DESC', 'post_type' => array('news','database'), 'post_status' => 'publish' )); $myposts = get_posts( $args ); foreach( $myposts as $mypost ) { ?> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php } wp_reset_query(); ?> 

Solutions Collecting From Web of "Сортировка сообщений в соответствии с количеством просмотров не работает"

Ваш код не имеет смысла.

  1. Вы используете query_posts() , чего вы никогда не должны делать, но все, что делает, это clobber основной запрос. Тем не менее, вы не используете побитый запрос.
  2. Затем вы используете get_posts() с неопределенным (насколько это указано в коде) аргументом, поэтому он не вернет то, что вы ожидаете.

Я думаю, что то, что вы ищете, это:

 $args = array( 'posts_per_page' => 4, /* get 4 posts, or set -1 for all */ 'orderby' => 'meta_value_num', /* this will look at the meta_key you set below */ 'meta_key' => 'post_views_count', 'order' => 'DESC', 'post_type' => array('news','database'), 'post_status' => 'publish' ); $myposts = new WP_Query( $args ); if ($myposts->have_posts()) { while ($myposts->have_posts()) { $myposts->the_post(); ?> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><?php } }