ユーザーが最後にサイトにログインしてから最後に追加または変更された投稿のみを表示するカスタムループを作成するための解決策を探しています。
それほど複雑ではないでしょうか。
特定の時間後に投稿を取得するには2つのステップで行われます。
以下の関数はユーザーの最後のログイン時間を保存します。
// 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' ) );
}
次に、ログインしているユーザーの最終ログイン時刻を収集し、以下のようにクエリを変更する必要があります。
<?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();
?>