Come Modificare il Loop per Ordinare gli Articoli per Visualizzazioni (usando il plugin wp-postviews)
Spero che qualcuno sia così gentile da aiutarmi. Attualmente ho una pagina che ordina tutti gli articoli per numero di commenti, ma voglio modificare il loop per ordinare gli articoli per numero di visualizzazioni. Ho installato il plugin 'wp-postviews.1.50' e sono riuscito a visualizzare il numero di visualizzazioni su ogni articolo, quindi so che quella parte funziona, ora ho solo bisogno di modificare il codice del loop per ordinare per maggior numero di visualizzazioni, è possibile?
Questo è il modo in cui viene richiamato il numero di visualizzazioni:
<?php $views = get_post_meta($post->ID, 'views', true); ?><?php echo $views; ?>
Ed ecco il loop che deve essere modificato:
<?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', // ordina per numero di commenti
'order' => 'DESC', // ordine decrescente
); ?>
<?php query_posts($args); ?>
<?php if (have_posts()) : while (have_posts()) : the_post() ;?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
Grazie in anticipo per qualsiasi aiuto.
Sto usando WordPress 3.0.4.

Volevo solo fornire un aggiornamento. Qualcuno è stato così gentile da mostrarmi come aggiornare il codice che ho pubblicato sopra. Si è rivelato abbastanza semplice (se sai cosa stai facendo!). Quindi l'ho pubblicato qui sotto per chiunque voglia fare qualcosa di simile.
<?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(); ?>">

Dalla documentazione del plugin
Per visualizzare i post più visti usa:
<?php if
(function_exists('get_most_viewed')):
?>
<ul>
<?php get_most_viewed(); ?>
</ul> <?php endif; ?>
Il primo valore che passi determina cosa vuoi ottenere, 'post', 'page' o 'both'. Il secondo valore che passi è il numero massimo di post che vuoi ottenere.
Predefinito: get_most_viewed('both', 10);

Grazie per la risposta. Capisco come ottenere un elenco dei post, quello con cui ho difficoltà però è come modificare il loop che ho postato sopra per ottenere i post in ordine di visualizzazioni.

Dovrai aggiungere un ordinamento personalizzato al parametro order_by. Dai un'occhiata a questo: http://www.gab.ro/post-sorting-reloaded/ che è un plugin che 'avvolge il filtro posts_orderby' per qualche idea. Tuttavia, sembra che posts_orderby sia stato deprecato - quindi potresti dover fare attenzione lì

L'ho fatto in questo modo molto bene :)
<?php $args = array(
'posts_per_page' => 4, // Numero di post da mostrare
'category_name' => 'xyz', // Slug della categoria
'meta_key' => 'views', // Campo personalizzato per le visualizzazioni
'orderby' => 'meta_value_num', // Ordinamento per valore numerico
'order' => 'DESC', // Ordine decrescente
'post_status' => 'publish' // Mostra solo post pubblicati
); ?>
