Intereting Posts
Добавление дополнительных переменных на странице меню Значения мета-ключа запроса 2 и категория Понимание деталей темы в style.css Ломающаяся сетка бутстрапа при количестве сообщений с налоговыми условиями проблема с вызовом другого header.php для home.php Как зарегистрировать пользовательский виджет меню Вызовите специальное обновление плагина Как добавить класс для отправки комментариев? Могу ли я добавить настраиваемую мета для каждого изображения, загруженного через media-upload.php? Проверьте, подключен ли пользователь и получает ли он ID без полной загрузки wordpress Возвращаемое значение add_filter Как подключить боковую панель через add_action? Ошибки компиляции при компиляции перевода WordPress Авторы не показываются с включенными пользователем сообщениями плагин Изменить пароль для возврата пароля, возвращенный wp_lostpassword_url () через плагин

Только показать автору свои пользовательские типы сообщений

У меня есть сайт с 3 различными пользовательскими типами сообщений (списки, контакты, события) и около 1600 «авторов». То, что я хочу сделать, это только показать, что автор их сообщений в бэкэнд. Поэтому, когда authorA входит в систему и нажимает на «Списки», они видят только свои собственные.

У меня этот код работает в Functions.php для управления первым типом сообщения, но я не уверен, как управлять двумя другими. Проблема, которую я вижу, заключается в том, что когда authorA нажимает «События», появляется сообщение, которое находится в «Листах».

function __set_all_posts_for_author( &$query ) { if ( $query->is_author ) $query->set( 'post_type', 'listings' ); remove_action( 'pre_get_posts', '__set_all_posts_for_author' ); // run once! } add_action( 'pre_get_posts', '__set_all_posts_for_author' ); 

Итак, я думаю, мне просто нужно изменить «списки» на все три типа сообщений, но я не уверен, как … Любые мысли?

Как отмечает @s_ha_dum в своем комментарии, ваше описание и ваш код кажутся разными.

Если я понимаю описание, то код, который вы хотите сделать:

 function __set_all_posts_for_author( $query ) { if ( is_admin() && is_post_type_archive( array('listings', 'contacts', 'events') ) ) { $current_user = wp_get_current_user(); $query->set( 'author', $current_user->ID ); } } add_action( 'pre_get_posts', '__set_all_posts_for_author' ); 

Используя вышеприведенный код, каждый раз, когда пользователь, зарегистрированный в бэкэнд, должен иметь список элементов CPT «Списки», «Контакты» и «События», он видит только сообщение, созданное им самим.

Вы можете создать author.php, а затем захватить автора, а также их сообщения.

 <?php $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author)); query_posts( array( 'post_type' => array('post','custom_post_type'), 'author' => $author, 'posts_per_page' => -1 ) ); ?> 

Замените custom_post_type своим именем CPT. Используйте столько, сколько вам нужно / нужно в массиве post_type.