Можно ли разрешить пользователю выбирать, какую тему он хотел бы установить на новой странице регистрации на сайте? И как только сайт создан, он, очевидно, устанавливает любую тему, которую выбрал.
Я нашел wp_get_themes . Это как бы вы предварительно заполнили выпадающее меню всеми доступными темами? Как вы передаете информацию о теме фактическому процессу регистрации, чтобы сайт создавался с правильной темой?
Если кто-то знает, как это сделать с помощью Gravity Forms, это было бы здорово.
Обновить:
Вот то, что я пока имею, это не учитывает дочерние темы, будет работать над этим после
Эта функция выведет список тем с переключателями, сохраняя выбранную тему в $ _POST ['custom_theme']
/**
* Show list of themes at bottom of wp-signup.php (multisite)
*/
function 70169_add_signup_extra_fields() { ?>
Themes<br />
<?php
$themes = wp_get_themes();
foreach ( $themes as $theme ) {
$theme_name = $theme['Name'];
$theme_stylesheet = $theme->stylesheet;
?>
<label>
<input id="<?php echo $theme_stylesheet; ?>" type="radio" <?php if ( isset( $_POST['custom_theme'] ) ) checked( $_POST['custom_theme'], $theme_stylesheet ); ?> name="custom_theme" value="<?php echo $theme_stylesheet; ?>" ><?php echo $theme_name; ?>
</label>
<?php } ?>
<?php }
add_action( 'signup_extra_fields', '70169_add_signup_extra_fields' );
Я думал, что добавлю скрытое поле как способ передать значение темы на создание сайта. Хотя с этим что-то не так - на последнем этапе он теряет свою ценность, но пока не уверен, почему.
/**
* Add a hidden field with the theme's value
*/
function 70169_theme_hidden_fields() { ?>
<?php
$theme = isset( $_POST['custom_theme'] ) ? $_POST['custom_theme'] : null;
?>
<input type="hidden" name="user_theme" value="<?php echo $theme; ?>" />
<?php }
add_action( 'signup_hidden_fields', '70169_theme_hidden_fields' );
И, наконец, функция для передачи названия темы на вновь созданный сайт. Это работает, если я жестко закодировал переменные, но я пока не могу передать значение custom_theme. Сайт создается хорошо, но параметры шаблона и таблицы стилей остаются пустыми. Это просто не получить значение, независимо от того, что я пытаюсь. Я думаю, мне нужно использовать $ _GET для доступа к скрытому полю, которое я создал ранее. Опять же, все, что я хочу сделать на этом этапе, это передать одно и то же имя темы в параметры шаблона и таблицы стилей, и я выясню, как их дифференцировать после того, как я получу его работу.
/**
* Create the new site with the theme name
*/
function 70169_wpmu_new_blog( $blog_id ) {
// need to get this working, use $_GET?
// $theme = ???
update_blog_option( $blog_id, 'template', $theme ); // $theme works if I hardcode it with a theme name
update_blog_option( $blog_id, 'stylesheet', $theme );
}
add_action( 'wpmu_new_blog', '70169_wpmu_new_blog' );
источник
Ответы:
Для того, чтобы делать то, что вы хотите, вы можете добавить любые поля, которые вы хотите, а затем сохранить их в
user_meta
...(Можно также сохранить их в
$user_info
массиве / объекте, но я не уверен, что было бы выгодно ..)после всего этого вы можете получить user_theme примерно так:
ПРИМЕЧАНИЕ: это было написано на лету. Это не было проверено на мультиблоге, но на простой установке wp, и хотя не должно быть большой разницы - все же это не производственная функция, это было только, чтобы поставить вас на правильный путь. Требуется санация и проверка переменных, кода очистки и FORM MARKUP, а также добавление поля также на другие связанные с пользователем экраны (создание пользователя, редактирование пользователя, изменение профиля и т. Д.).
ПРИМЕЧАНИЕ II: вы спрашивали о формах гравитации в вашем уодате - у них есть дополнение для этого
источник
template
иstylesheet
сохраняются в таблице параметров. Сказав это, ваш код очень помог, спасибо.Я знаю, что это обман, но я использую этот плагин. Он позволяет копировать любой существующий сетевой сайт, а затем делает его доступным в качестве шаблона при регистрации новых пользователей. Вы можете создать столько новых шаблонов блога, сколько пожелаете. Они будут содержать весь контент, плагины, настройки и т. Д. И т. Д., И пользователи могут выбрать один из них при создании нового сайта / учетной записи :)
http://premium.wpmudev.org/project/new-blog-template/
источник
Этот вид отвечает на ваш вопрос: мы разместили на этом сайте плагин под названием « Переключатель тем »: focusww.com, а на боковой панели вы можете выбрать его из списка тем. Это позволяет вам выбрать, какие темы можно использовать и сколько времени до истечения срока действия файла cookie, чтобы вернуться к теме по умолчанию.
источник
Если все еще актуально, возможно, это могло бы помочь другим, ищущим подобные решения
Я написал пост в блоге ( http://artofcoding.in/select-theme- while-registering-wordpress-multisite-network/ ), когда у меня было подобное требование. Надеюсь, это полезно.
источник