Mostrar publicaciones recién agregadas desde la fecha / hora de inicio de sesión del último usuario

2

Estoy buscando una solución para crear un bucle personalizado que solo muestre las últimas publicaciones agregadas / modificadas desde el último inicio de sesión del usuario en el sitio.

No debería ser tan complicado, ¿no?

    
pregunta Roee Yossef 01.12.2013 - 20:13

1 respuesta

4

La obtención de las publicaciones después de un tiempo específico se realizará en 2 pasos.

  1. Debe almacenar la última hora de inicio de sesión del usuario.
  2. Cambiar la consulta para extraer las publicaciones que se modifiquen después del tiempo de inicio de sesión anterior.

La función a continuación almacenará el último tiempo de inicio de sesión del usuario.

// 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' ) );
}

Luego, debe recopilar la última hora de inicio de sesión del usuario que inició sesión y modificar la consulta como se muestra a continuación.

<?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();
?>
    
respondido por el Chittaranjan 01.12.2013 - 21:57

Lea otras preguntas en las etiquetas