Intereting Posts

Возможно ли это показать сообщение пользователя после входа в систему

У меня есть веб-сайт, администратор настраивает одно сообщение для каждого пользователя регистра, только этот пользователь может видеть его при входе в систему (автор сообщения – это имя пользователя). Я думаю, что при входе пользователя в систему просто поиск имени пользователя, равного имени автора, будет в порядке.

Вопрос в том, как это сделать, я не слишком много знаю о PHP, трудно заставить его работать.

Он какой-то код, может быть, полезен.

<?php if ( is_user_logged_in() ) { echo 'Welcome, registered user!'; } else { echo 'Welcome, visitor!'; } ?> 

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

Вы можете получить текущий идентификатор пользователя с помощью get_current_user_id( ) :

 $user_id = get_current_user_id( ); 

Идентификатор пользователя может использоваться для получения пользовательских данных с помощью get_userdata( ) :

 $user_data = get_userdata( $user_id ); 

С помощью этой информации вы сможете получить запрашиваемое сообщение с WP_Query .
Например (пользователи nicename):

 $query = new WP_Query( 'author_name=rami' ); 

Объединив все это вместе, вы можете создать что-то вроде:

 if ( is_user_logged_in( ) ) { $user_id = get_current_user_id( ); $user_data = get_userdata( $user_id ); $query = new WP_Query( 'author_name=' . $user_data->user_nicename ); if( $query->have_posts( ) ) { while( $query->have_posts( ) ) { $query->the_post( ); // The Loop } } } else { // A visitor } 

Вы можете немного поиграть с кодом, чтобы получить ровно одно сообщение с WP_Query но вы наверняка немного дальше по этому пути.

Я бы рассмотрел поиск user_id, а не user nicename. Пользователь может изменить свое имя, поэтому вам придется синхронизировать его (обновлять страницу пользователя каждый раз, когда пользователь меняет свое имя).

Выбор по nicename также намного медленнее, чем выбор по идентификатору пользователя.

использование

 $query = new WP_Query( array('author'=>$user_id, ...<OTHER QUERY PARAMS YOU ALREADY USE>) ); 

Конечно, вы также должны позаботиться о том, чтобы не показывать этот пост / страницу другим пользователям.