Как изменить цикл для заказа постов по представлениям (с помощью плагина WP-Postviews)

wordpress.stackexchange https://wordpress.stackexchange.com/questions/6796

  •  16-10-2019
  •  | 
  •  

Вопрос

Я надеюсь, что кто -то будет достаточно любезен, чтобы помочь. В настоящее время у меня есть страница, которая заказывает все сообщения по количеству комментариев, но я хочу изменить цикл, чтобы заказать сообщения по подсчету просмотра. Я установил плагин «wp-postviews.1.50» и получил его для отображения количества представлений на каждом посте, поэтому я знаю, что его сторона работает, теперь мне просто нужен код цикла, измененный на заказ большинством видов, Это возможно?

Это то, как вызывает количество просмотров:

<?php $views = get_post_meta($post->ID, 'views', true); ?><?php echo $views; ?>

И вот эта петля, которая мне нужно изменить:

<?php $posts_per_page = get_query_var('posts_per_page'); ?>
<?php $paged = intval(get_query_var('paged')); ?>
<?php $paged = ($paged) ? $paged : 1; ?>
<?php $args = array(
'posts_per_page' => $posts_per_page,
'paged' => $paged,
'more' => $more = 0,
'orderby' => 'comment_count',
'order' => 'DESC',
); ?>
<?php query_posts($args); ?>
<?php if (have_posts()) : while (have_posts()) : the_post() ;?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">

Заранее спасибо за помощь в этом.

Я использую WordPress 3.0.4.

Это было полезно?

Решение

Просто хотел дать обновление. Кто -то был достаточно любезен, чтобы показать мне, как обновить код, который я опубликовал выше. Это оказалось довольно просто (если вы знаете, что делаете!). Поэтому я опубликовал это ниже для всех, кто хочет сделать что -то подобное.

<?php $posts_per_page = get_query_var('posts_per_page'); ?>
<?php $paged = intval(get_query_var('paged')); ?>
<?php $paged = ($paged) ? $paged : 1; ?>
<?php $args = array(
'posts_per_page' => $posts_per_page,
'paged' => $paged,
'more' => $more = 0,
'meta_key' => 'views',
'orderby' => 'meta_value_num',
'order' => 'DESC',
); ?>
<?php query_posts($args); ?>
<?php if (have_posts()) : while (have_posts()) : the_post() ;?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">

Другие советы

Из документации плагина

Для отображения большинства просматриваемых сообщений используются:

<?php if
(function_exists('get_most_viewed')):
?>
<ul>
      <?php get_most_viewed(); ?>    
</ul> <?php endif; ?> 

Первое значение, которое вы проходите, - это то, что вы хотите получить, «Post», «Page» или «Оба». Второе значение, которое вы проходите, - это максимальное количество поста, которое вы хотите получить.

По умолчанию: get_est_viewed ('оба', 10);

Попробуйте с этим:

$args=array(
 'posts_per_page'      => 15, 
 'post_type'     => 'post', 
 'key' => 'views',
 'orderby' => 'meta_value_num', 
 'order'    => 'ASC',
 'post_status' => 'publish'
);

query_posts($args); ?>
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

Я сделал это так хорошо :)

<?php $args = array(
  'posts_per_page' => 4,
  'category_name' => 'xyz',
  'meta_key' => 'views',
  'orderby' => 'meta_value_num',
  'order' => 'DESC',
  'post_status' => 'publish'
); ?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top