Intereting Posts
Добавление html-баннера в сообщения Зачем использовать виджеты? Пользовательский тип сообщения с обменными знаками (без содержимого)? Создавайте одноразовую запись динамически, добавляйте к основному запросу, не вставляйте сообщение (просмотр профиля пользователя) Помощь в понимании таксономии Импорт данных для плагина дополнительных настраиваемых полей? Можно ли открыть всплывающее окно TEXT из изображения? Как получить таксономические условия по ID в определенном порядке Получить список условий текущего таксономического архива для другой таксономии Запрос пользовательской почты по таксономии нескольких категорий URL-адрес плагина WordPress для формы submit the_content () возвращает null только в одной категории, хотя есть контент Как обрабатывать формы из боковых виджетах – Обработка переменных $ _POST с использованием get_field_name () Возможно ли вставить get_previous_post ()? Запланированное событие не запускается в полночь

Показывать новые сообщения с момента последнего входа пользователя в систему

Я ищу решение для создания настраиваемого цикла, который будет отображать только последние добавленные / измененные записи с момента последнего входа пользователя на сайт.

Это не должно быть так сложно, не так ли?

Solutions Collecting From Web of "Показывать новые сообщения с момента последнего входа пользователя в систему"

Получение сообщений через определенное время будет выполнено в 2 этапа.

  1. Необходимо сохранить последнее время входа пользователя.
  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 ( 'Ymd 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(); ?>