web-dev-qa-db-fra.com

Comment changer de boucle en postes d'ordre par vues (en utilisant le plugin wp-postviews)

J'espère que quelqu'un aura la gentillesse de vous aider. J'ai actuellement une page qui ordonne tous les articles en fonction du nombre de commentaires, mais je souhaite modifier la boucle pour classer les articles en fonction du nombre de vues. J'ai installé le plug-in 'wp-postviews.1.50' et je l'ai obtenu pour afficher le nombre de vues sur chaque message. Je sais donc que ce côté-là fonctionne, il me faut maintenant modifier le code de la boucle pour qu'il soit en ordre, Est-ce possible?

Voici comment le nombre de vues est appelé:

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

Et voici la boucle que j'ai besoin de changer:

<?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(); ?>">

Merci d'avance pour toute aide avec cela.

J'utilise WordPress 3.0.4.

4
PG73

Je voulais juste donner des nouvelles. Quelqu'un a eu la gentillesse de me montrer comment mettre à jour le code que j'ai posté ci-dessus. Cela s'est avéré être assez simple (si vous savez ce que vous faites!). Donc, je l'ai posté ci-dessous pour quiconque veut faire quelque chose de similaire.

<?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(); ?>">
7
PG73

Je l'ai fait de cette façon plutôt bien :)

<?php $args = array(
  'posts_per_page' => 4,
  'category_name' => 'xyz',
  'meta_key' => 'views',
  'orderby' => 'meta_value_num',
  'order' => 'DESC',
  'post_status' => 'publish'
); ?>
0
Tony_404

Essayez avec ceci:

$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(); ?>
0
user3631

De la documentation du plugin

Pour afficher les articles les plus consultés, utilisez:

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

La première valeur que vous transmettez est ce que vous voulez obtenir, "post", "page" ou "les deux". La deuxième valeur que vous transmettez est le nombre maximal de publications que vous souhaitez recevoir.

Par défaut: get_most_viewed ('both', 10);

0
anu