Похоже, достаточно простое требование, но я изо всех сил:
Я хочу добавить опциональное поле в «Добавить новый сайт» .
Простой текстовый вариант подойдет. Как мне это сделать?Мне нужно сохранить эту опцию блога при создании сайта.
Я знаю, что могу использовать хук 'wpmu_new_blog', который передает
$meta
переменную с предоставленными параметрами, но мне интересно, есть ли способ сделать все это за один шаг, чтобы мне не пришлось выполнять другой запрос к БД, или еще хуже переопределить / заменить весь процесс создания сайта?
Примечания:
Я использую WP 3.3.1 с настройкой MultiSite. Я пишу плагин, который перечисляет все сайты, которые соответствуют указанному значению настраиваемого поля (назовем его «тип»).
Кроме того, я опытный разработчик PHP, но я все еще относительно новичок во взломе WordPress, поэтому, пожалуйста, предположим, что я еще не очень хорошо знаком со всеми различными функциями WP и хуками.
Процесс регистрации на нескольких сайтах не так-то просто настроить. Он имеет много хуков, с которыми можно играть, в отличие от других процессов, но, похоже, они не слишком хорошо сочетаются друг с другом, поэтому я понимаю ваше разочарование.
Если я правильно понимаю, это не так сложно, чтобы достичь того, что вы хотите, хотя это не может быть одношаговое решение без переопределения большей части поведения WordPress по умолчанию, в основном из-за регистрации (т.е. когда ваш пользователь будет отправлять пользовательскую информацию) и активации ( т.е. когда новый блог действительно будет создан) произойдет отдельно.
Вот очень грубый код, который вам понадобится для начала. Надеюсь, это направит вас в правильном направлении:
Иметь ввиду:
В заключение: если вы хотите позже обработать все значения «extra_field» из всех существующих блогов, я настоятельно рекомендую хранить информацию в одной таблице; возможно, используйте
update_site_option
вместоupdate_blog_option
этой последней функции потерю blog_id, что не требуется в этом случае.В любом случае, дайте нам знать, как оно идет, и удачи!
источник
если вы посмотрите на код site-new.php, вы бы уже получили свой ответ - и это не так!
Нет никаких условий, проверяющих, можно ли что-либо добавить в форму. Однако я изучил файл и считаю, что вам придется вручную добавить это поле ввода в site-new.php и передать значение в виде мета в массиве в функцию wpmu_create_blog, которую вы найдете где-то рядом со строкой 77. НЕ ПРОВЕРЕНО, но читается от того, что делает функция, может быть то, что вы ищете.
источник