it-swarm.com.de

Zeige neu hinzugefügte Beiträge seit dem letzten Login

Ich suche nach einer Lösung zum Erstellen einer benutzerdefinierten Schleife, in der nur die zuletzt hinzugefügten/geänderten Beiträge seit der letzten Benutzeranmeldung auf der Website angezeigt werden.

Es sollte nicht so kompliziert sein, oder?

2
Roee Yossef

Das Erhalten der Beiträge nach einer bestimmten Zeit erfolgt in 2 Schritten.

  1. Sie müssen die letzte Anmeldezeit des Benutzers speichern.
  2. Ändern der Abfrage, um die Posts abzurufen, die nach der obigen Anmeldezeit geändert wurden .

Die folgende Funktion speichert die letzte Anmeldezeit des Benutzers.

// Associating a function to login hook
add_action ( 'wp_login', 'set_last_login' );

function set_last_login ( $login ) {
    $user = get_userdatabylogin ( $login );

    // Setting the last login of the user
    update_usermeta ( $user->ID, 'last_login', date ( 'Y-m-d H:i:s' ) );
}

Anschließend müssen Sie die letzte Anmeldezeit des angemeldeten Benutzers erfassen und die Abfrage wie folgt ändern.

<?php
// Get current user object
$current_user = wp_get_current_user();

// Get the last login time of the user
$last_login_time = get_user_meta ( $current_user->ID, 'last_login', true );

// WP_Query with post modified time
$the_query = new WP_Query(
                array(
                    'date_query' =>
                        array(
                            'column' => 'post_modified',
                            'after' => $last_login_time,
                        )
                )
            );
?>
<?php if ( $the_query->have_posts() ) : ?>

    <?php // Start the Loop ?>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <?php // Show the output ?>
    <?php endwhile; ?>

<?php endif; ?>
<?php
// Restore original Post Data
wp_reset_postdata();
?>
4
Chittaranjan