Cómo Cambiar el Loop para Ordenar Entradas por Vistas (usando el plugin wp-postviews)

12 ene 2011, 13:58:23
Vistas: 29.4K
Votos: 4

Espero que alguien sea lo suficientemente amable para ayudar. Actualmente tengo una página que ordena todas las entradas por número de comentarios, pero quiero cambiar el loop para ordenar las entradas por número de vistas. He instalado el plugin 'wp-postviews.1.50' y he logrado que muestre el número de vistas en cada entrada, así que sé que esa parte está funcionando, ahora solo necesito cambiar el código del loop para ordenar por más vistas, ¿es esto posible?

Así es como se muestra el número de vistas:

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

Y aquí está el loop que necesito cambiar:

<?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', // ordenar por número de comentarios
'order' => 'DESC',
); ?>
<?php query_posts($args); ?>
<?php if (have_posts()) : while (have_posts()) : the_post() ;?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">

Gracias de antemano por cualquier ayuda con esto.

Estoy usando WordPress 3.0.4.

0
Todas las respuestas a la pregunta 4
1

Solo quería dar una actualización. Alguien tuvo la amabilidad de mostrarme cómo actualizar el código que publiqué anteriormente. Resultó ser bastante simple (¡si sabes lo que estás haciendo!). Así que lo he publicado a continuación para cualquiera que quiera hacer algo similar.

<?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(); ?>">
14 ene 2011 11:10:24
Comentarios

¡Gracias, me ayudó!

M4theuz M4theuz
3 abr 2018 06:21:32
3

De la documentación del plugin

Para mostrar las publicaciones más vistas usa:

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

El primer valor que pasas es lo que quieres obtener, 'post', 'page' o 'both'. El segundo valor que pasas es el número máximo de publicaciones que deseas obtener.

Por defecto: get_most_viewed('both', 10);

12 ene 2011 14:14:29
Comentarios

Gracias por responder. Puedo ver cómo obtener una lista de las publicaciones, pero lo que me cuesta es cómo modificar el ciclo que he publicado arriba para obtener las publicaciones ordenadas por las más vistas.

PG73 PG73
12 ene 2011 14:44:45

Tendrás que agregar un ordenamiento personalizado al parámetro order_by. Échale un vistazo a esto: http://www.gab.ro/post-sorting-reloaded/ que es un plugin que 'envuelve el filtro posts_orderby' para obtener algunas ideas. Sin embargo, parece que posts_orderby ha quedado obsoleto - así que deberías tener cuidado con eso.

anu anu
12 ene 2011 15:19:24

Gracias, le echaré un vistazo. Esperaba que alguien aquí hubiera hecho algo similar en el pasado y pudiera mostrarme exactamente cómo necesitaría cambiar mi código de arriba. Aunque por lo que dices, no parece ser una tarea sencilla.

PG73 PG73
12 ene 2011 18:32:45
0

Prueba con esto:

$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(); ?>
2 mar 2011 10:12:11
1

Lo he hecho de esta manera bastante bien :)

<?php $args = array(
  'posts_per_page' => 4,
  'category_name' => 'xyz',
  'meta_key' => 'views',
  'orderby' => 'meta_value_num',
  'order' => 'DESC',
  'post_status' => 'publish'
); ?>
1 jul 2015 00:19:02
Comentarios

Por favor, agrega alguna explicación. Explica por qué tu código debería funcionar.

Nilambar Sharma Nilambar Sharma
1 jul 2015 06:50:32