Apakah mungkin untuk mengizinkan pengguna memilih tema mana yang ingin mereka instal dari halaman pendaftaran situs baru? Dan setelah situs dibuat, itu jelas menginstal tema yang mereka pilih.
Saya menemukan wp_get_themes . Apakah ini yang akan Anda lakukan sebelum mengisi menu dropdown dengan semua tema yang tersedia? Bagaimana Anda meneruskan informasi tema ke proses pendaftaran aktual sehingga situs dibuat dengan tema yang benar?
Jika seseorang tahu bagaimana melakukan ini dengan Gravity Forms, itu akan bagus juga.
Memperbarui:
Inilah yang saya miliki sejauh ini, tidak memperhitungkan tema anak, akan bekerja setelah itu
Fungsi ini akan menampilkan daftar tema dengan tombol radio, menyimpan tema yang dipilih dalam $ _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' );
Saya pikir saya akan menambahkan bidang tersembunyi sebagai cara untuk meneruskan nilai tema ke pembuatan situs. Ada sesuatu yang salah dengan ini - pada langkah terakhir kehilangan nilainya, belum yakin mengapa.
/**
* 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' );
Dan akhirnya sebuah fungsi untuk meneruskan nama tema ke situs yang baru dibuat. Ini berfungsi jika saya mengubah kode variabel, tetapi saya belum dapat meneruskan nilai custom_theme. Situs ini dibuat dengan baik tetapi opsi template dan stylesheet kosong. Hanya saja tidak mendapatkan nilai apa pun yang saya coba. Saya kira saya harus menggunakan $ _GET untuk mengakses bidang tersembunyi yang saya buat sebelumnya. Sekali lagi, yang ingin saya lakukan pada titik ini adalah memberikan nama tema yang sama ke opsi templat dan gaya, saya akan mencari cara membedakannya setelah saya membuatnya berfungsi.
/**
* 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' );