Sowechseln Sie die Schleife in die Bestellung von Beiträgen nach Ansichten (mit WP-Postviews-Plugin)

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

  •  16-10-2019
  •  | 
  •  

Frage

Ich hoffe, jemand wäre freundlich genug, um zu helfen. Ich habe derzeit eine Seite, auf der alle Beiträge nach Kommentaren zählen, aber ich möchte die Schleife ändern, um die Beiträge nach Ansicht zu bestellen. Ich habe das Plugin 'WP-Postviews.1.50' installiert und es dazu gebracht, die Anzahl der Ansichten in jedem Beitrag anzuzeigen. Ich weiß, dass die Seite davon funktioniert. Jetzt brauche ich nur den Loop-Code, der nach den meisten Ansichten auf Bestellung geändert wird. Ist das möglich?

Auf diese Weise wird die Anzahl der Ansichten ausgerufen:

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

Und hier ist die Schleife, die ich geändert habe:

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

Vielen Dank im Voraus für jede Hilfe.

Ich verwende WordPress 3.0.4.

War es hilfreich?

Lösung

Ich wollte nur ein Update geben. Jemand war so freundlich, mir zu zeigen, wie ich den oben geposteten Code aktualisiert. Es stellte sich heraus, dass es ziemlich einfach war (wenn Sie wissen, was Sie tun!). Also habe ich es unten für alle gepostet, die etwas Ähnliches tun wollen.

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

Andere Tipps

Aus der Plugin -Dokumentation

Um die meisten angezeigten Beiträge anzuzeigen, verwenden Sie:

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

Der erste Wert, den Sie übergeben, ist das, was Sie erhalten möchten, "Post", "Seite" oder "beide". Der zweite Wert, den Sie übergeben, ist die maximale Anzahl von Post, die Sie erhalten möchten.

Standard: get_st_viewed ('beide', 10);

Versuchen Sie es damit:

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

Ich habe es so schön gemacht :)

<?php $args = array(
  'posts_per_page' => 4,
  'category_name' => 'xyz',
  'meta_key' => 'views',
  'orderby' => 'meta_value_num',
  'order' => 'DESC',
  'post_status' => 'publish'
); ?>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top