Intereting Posts
Проблема с добавлением нового типа сообщения Изменение элементов верхнего уровня на радиоустройствах в метафайле категорий? Проблема перезаписи URL-адреса WordPress Добавление «мета-информации» в функцию PHP-сайта PHP? Как удалить некоторые параметры экрана и мета-ящики из добавления / редактирования типа сообщения? Отфильтруйте пользовательскую таксономию при отображении кнопки, которую могут показать все другие таксономии Как изменить структуру URL-адресов для постраничных страниц? «Примечание: неопределенная переменная: содержимое» показывает Объединение короткого кода и get_template_part Как изменить «Переместить в корзину» на «Переместить в черновик» для пользователей моего блога? Редактирование файла wp-config.php запрашивает другую установку удаление кода сгенерированного WordPress из раздела главы? Как создать подписку на новостные ленты? Установить пост-эскиз (с помощью php)? Как указать несколько столбцов поиска для поиска таблицы списка wp

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

Я использую фрагмент кода ниже, чтобы получить количество просмотров каждого сообщения на моем 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 } }