Intereting Posts
Выберите две суммы с одним выражением get_var Перенаправление, если текущий пользователь вышел из системы, а текущая страница – / my-account Изменение URL-адреса входа wp без .htaccess Как обрабатывать короткие коды при использовании JSON API Woocommerce – Как смешивать продукты и сообщения на целевой странице? Можно ли получить метаданные для отправки ссылочной страницы? Как установить медиа-папку для каждого типа вне медиа-каталога Отображать заголовки сообщений, соответствующие строке в сообщении Удаление существующего пункта меню Я хочу удалить плагины с моей страницы wp-login.php Есть ли is_child () в wp 3.5.1? Условный add_filter для загрузки каталога? Многоязычный многоуровневый> настраиваемый нижний колонтитул на разных сайтах с виджетами? Как отключить Редактировать сообщение и разрешить только настраиваемое поле? Получать сообщения с сайтов в Multisite?

Как создать страницу профиля для специальных / пользовательских членов роли пользователя?

Я пытаюсь создать страницу профиля для каждого пользователя, если его роль является настраиваемой ролью.

Ive создал пользовательскую роль на моем сайте. Теперь это роль по умолчанию назначается членам, когда они регистрируются на сайте.

У меня есть contributors.php и authors.php . Если я www.mysite.com/authors на сайт www.mysite.com/authors он перечислит всех пользователей без учета роли. Затем я использовал Author Base using generate_rewrite_rules чтобы переписать этот URL.

Теперь, если я www.mysite.com/mycustomrole на www.mysite.com/mycustomrole он перечисляет всех пользователей. Это нормально для меня.

Следующий шаг для создания страницы профиля для каждого члена. Поэтому я создал author.php

Когда у меня есть пользователи ниже,

  • user1 – администратор
  • user2 – пользовательская роль
  • user3 – администратор
  • user4 – пользовательская роль

Я могу увидеть страницу своего профиля, как это.

  • Если я www.mysite.com/authors/user1 на сайт www.mysite.com/authors/user1 он покажет свой профиль.
  • Если я www.mysite.com/authors/user2 на сайт www.mysite.com/authors/user2 он не покажет свой профиль.
  • Если я www.mysite.com/authors/user3 на сайт www.mysite.com/authors/user3 он покажет свой профиль.
  • Если я www.mysite.com/authors/user4 на сайт www.mysite.com/authors/user4 он не покажет свой профиль.

Поэтому я получаю отдельную страницу профиля только для пользователя роли administrator а не для custom created role пользователей. Почему это.

Пока мои требования:

    1. Я хочу получить URL-адрес для отдельного пользовательского пользователя, например: www.mysite.com/customrole/user1
    1. Я хочу показать пользователям пользовательской роли только по этому URL. но это нормально, если я могу показать другим пользователям роли под этим URL-адресом.

Как я могу сделать это WOTHOUT с помощью любых плагинов?

Solutions Collecting From Web of "Как создать страницу профиля для специальных / пользовательских членов роли пользователя?"

Вы отметили, что используете пользовательские типы сообщений.

Чтобы убедиться, что это проблема:

  1. Создайте обычную «запись» для каждого пользователя (а не пользовательский тип сообщения)
  2. Посмотрите, вдруг появляются ли их страницы.

Если это так, то, скорее всего, ваша страница автора не настроена для показа пользовательских сообщений.

Чтобы исправить это, вы можете использовать что-то вроде следующего в файле funtions.php (или изменить запрос на странице авторов):

 function my_show_special_posts_on_author( WP_Query $query ) { # Make sure you are only altering the query on the author page if ( $query->is_author() && $query->is_main_query() && !is_admin() ) { # Grab the current post types to be shown $types_to_show = $query->get('post_type'); $types_to_add = array( 'custom_post_type_1', 'custom_post_type_2' ); if ( is_array($types_to_show) ) { # Already showing an array of types, add yours if not already included foreach ( $types_to_add as $post_type ) { if ( !in_array($post_type, $types_to_show) ) { $types_to_show[] = $post_type; } } } else if ( empty($types_to_show) ) { # Strange. Not showing any types. Add yours anywise. $types_to_show = $types_to_add; } else { # A single one as a string, add it to your types to add then overwrite types to show $types_to_add[] = $types_to_show; $types_to_show = $types_to_add; } $query->set('post_type', $types_to_show); } } add_action('pre_get_posts', 'my_show_special_posts_on_author'); 

Не забудьте настроить строку $types_to_add = array( ... );

Это должно заставить ваши пользовательские типы сообщений показывать.