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