it-swarm.com.de

Beliebte Post-Abfrage zurücksetzen?

Ich verwende den folgenden Code, um die am häufigsten gelesenen Artikel anzuzeigen. Ich denke, es dauert die Lebensdauer der Artikel, da zuerst sehr alte Artikel angezeigt werden. Wie kann ich es zurücksetzen - wöchentlich?

in meiner function.php

function setPostViews($postID) {
    $countKey = 'post_views_count';
    $count = get_post_meta($postID, $countKey, true);
    if($count==''){
        $count = 0;
        delete_post_meta($postID, $countKey);
        add_post_meta($postID, $countKey, '0');
    }else{
        $count++;
        update_post_meta($postID, $countKey, $count);
    }
}

In meiner Seite anzeigen

<?php
                            query_posts (array (
                            'posts_per_page' => 5,
                            'meta_key' => 'post_views_count',
                            'orderby' => 'meta_value_num',
                            'order' => 'DESC',
                            'ignore_sticky_posts' => true,
                            ));
                            if (have_posts()) : while (have_posts()) : the_post();
                            ?>
                                <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
                            <?php
                            endwhile; endif;
                            wp_reset_query();
                            ?>
1
mad2kx

Wenn Sie in Ordnung sind das Zurücksetzen es wöchentlich - wie in den letzten 7 Tagen, wenn die Aufrufe jeden Montag bei 0 beginnen - anstatt zu versuchen, die am häufigsten gelesenen zu zeigen, wäre die einfachste Änderung, einen anderen Metaschlüssel für zu haben jede Woche des Jahres. Wenn Sie dann die Beiträge abfragen, fragen Sie einfach die Anzahl der Aufrufe für die aktuelle Woche des Jahres ab:

Sie können dies tun, indem Sie einfach Folgendes ändern:

$countKey = 'post_views_count';

Dazu:

$countKey = 'post_views_count_' . date( 'YW' );

date( 'YW' ) gibt Ihnen eine Zahl wie 201831, die die 31. Woche von 2018 darstellt, sodass jede Woche einen eigenen Metaschlüssel wie post_views_count_201831 erhält.

Wenn Sie dann die Posts abfragen, ändern Sie Folgendes:

'meta_key' => 'post_views_count',

So verwenden Sie den Metaschlüssel für die aktuelle Woche:

'meta_key' => 'post_views_count_' . date( 'YW' ),

Dies bedeutet, dass Sie nach dem Umschalten der Woche für kurze Zeit keine Posts mit Ansichten haben, da die Zählung von vorne begonnen hat. Eine Möglichkeit besteht darin, die Abfrage so zu ändern, dass für einen Tag weiterhin die beliebten Posts der vorherigen Woche angezeigt werden, während die Aufrufe für die aktuelle Woche weiterhin gezählt werden:

'meta_key' => 'post_views_count_' . date( 'YW', strtotime( '-1 day' ) ),
1
Jacob Peattie