Как отключить страницу регистрации в Multisite?
Если мы попытаемся получить доступ к несуществующему сайту в Multisite, например, http://site1.example.com
или http://example.com/site1/
, нас перенаправит на http://example.com/wp-signup.php?new=site1
.
Как заблокировать это и перенаправить браузер на другую страницу?

[Обновление]
Альтернативой (возможно, лучшей) является использование следующей константы в файле wp-config.php
:
define( 'NOBLOGREDIRECT', 'http://example.com' );
В самом начале файла wp-signup.php
находится следующий код:
function do_signup_header() {
do_action( 'signup_header' );
}
add_action( 'wp_head', 'do_signup_header' );
Таким образом, достаточно просто добавить хук signup_header
, чтобы прервать дальнейшее выполнение и перенаправить браузер на другой URL.
Вот реализация в виде Must Use Plugin:
<?php
/*
Plugin Name: Multisite - Prevent Sign-up Page
Plugin Url: http://wordpress.stackexchange.com/q/85529/12615
Version: 1.0
Author: Rodolfo Buaiz
*/
add_action( 'signup_header', 'rbz_prevent_multisite_signup' );
function rbz_prevent_multisite_signup()
{
wp_redirect( site_url() );
die();
}

@kaiser, мне всегда не нравилось такое поведение в закрытых сетях ;)

Эй, наш @kaiser, есть, по моему мнению, лучшее решение. Обновил ответ с ним. Также опубликовал связанный материал.

Я просто хотел сказать, что мне не нравится поведение ядра. Тем временем я нашел информацию о DropIns, когда говорил о них. +1 к обоим ответам.

Много экспериментировал с функцией для предотвращения редиректов и .htaccess, чтобы распознать */wp-signup.php и перенаправить на главную страцию сети. В итоге помогло define( 'NOBLOGREDIRECT', %URL% );
! +1 (примечание: результат может быть не виден на localhost с пользовательским редиректом URL через файл hosts в Windows)

Попробовал запустить это как MU-плагин, но вызывает ошибку (заголовки уже отправлены).

Я нашел решение в этой статье
У меня было неправильное значение настройки SUBDOMAIN_INSTALL
в моем конфигурационном файле.
