Intereting Posts
Функциональность обратного вызова и короткого кода Ajax Как создать настраиваемый шаблон для пользовательской таксономии wp-tag-cloud? Пользовательский шаблон страницы для отображения всех вложений изображений Что такое базовая структура xml для импорта страницы в WordPress? Оптимизация пользовательских запросов типа сообщений Как сохранить свой вариант на странице настроек постоянной ссылки? WordPress автоматически добавляет тег <! – -> html вокруг кода PHP Почему нельзя использовать wp_editor в пользовательском виджете? Если существует таксономия, то для отображения некоторого кода Переключить опцию в виджетах боковой панели добавление пользовательского поля данных метаданных в корзину, оформление заказа и заказ электронной почты Показывать пользовательский шаблон, независимо от того, просматривается ли страница, если пользователь не зашел в систему API WordPress Rest WP 3.3 Как добавить элементы меню в панель администратора? Изменить выбор по умолчанию для «Вставить или ссылку»?

Ограничить имена многосайтовых / сетевых сайтов до свойства пользователя

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

У нас есть сеть WordPress, настроенная так, чтобы все блоги делили доменное имя. Например, domain.name.com/x , domain.name.com/y и т. Д.

Мы интегрировали нашу сеть WordPress с нашим корпоративным Active Directory с помощью плагина интеграции Active Directory. Этот плагин помещает атрибут mailnickname пользователя (часть адреса электронной почты перед @ ) в поле псевдонима .

Я хотел бы разрешить пользователям самостоятельно создавать свои собственные блоги, но ограничивать имена имен блогов, чтобы они соответствовали полю псевдонима их учетной записи WordPress. Например, пользователь с псевдонимом jdoe мог создать только блог с именем domain.name.com/jdoe .

В идеале, в /wp-signup.php , было бы лучше, если бы поле blogname даже не отображалось.

Есть ли способ сделать это без настройки PHP? Я надеялся, что плагин уже будет существовать, но я не могу его найти.

Solutions Collecting From Web of "Ограничить имена многосайтовых / сетевых сайтов до свойства пользователя"

Глядя на источник wp-signup.php , вам кажется, что лучше всего выбрать фильтр signup_blog_init (строка 303 в signup_blog_init 3.5.1):

 /* add_filter( 'signup_blog_init', 'wpse103022_blog_name' ); function wpse103022_blog_name( $blog_details ) { // Set $username to the user's username $blog_details['blogname'] = $username; return $blog_details; } */ // see code below for replacement 

Я не уверен на 100%, что это сработает, но стоит попробовать.

отредактированный

Хорошо, после вашего комментария ниже я взглянул на validate_blog_signup() . Он вызывает wpmu_validate_blog_signup() и предоставляет фильтр – wpmu_validate_blog_signup . Глядя на код , кажется, что что-то вроде следующего должно работать:

 add_filter( 'wpmu_validate_blog_signup', 'wpse103039_blog_name' ); function wpse103039_blog_name( $blog_details ) { $blog_details['path'] = '/' . $desired_blogname; // however you get it return $blog_details; } 

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

  • domain
  • path
  • blogname
  • blog_title
  • user
  • errors