Чи можна дозволити користувачеві вибрати, яку тему вони б хотіли встановити, з нової сторінки реєстрації на сайті? І коли сайт створений, він, очевидно, встановлює будь-яку тему, яку вони обрали.
Я знайшов wp_get_themes . Це так, як ви б вирішили попередньо заповнити спадне меню з усіма доступними темами? Як ви передаєте інформацію теми про власне процес реєстрації, щоб сайт створювався з правильною темою?
Якщо хтось знає, як це зробити з гравітаційними формами, це теж було б чудово.
Оновлення:
Ось що я маю досі, воно не враховує дитячі теми, над цим працюватиме
Ця функція виводить список тем за допомогою перемикачів, зберігаючи вибрану тему у $ _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' );