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' );
sumber
Jawaban:
Untuk melakukan apa yang Anda inginkan, Anda bisa menambahkan bidang apa pun yang Anda inginkan, dan kemudian menyimpannya di
user_meta
...(Orang juga bisa menyimpannya dalam
$user_info
array / objek, tetapi saya tidak yakin apa manfaatnya ..)setelah semua itu, Anda dapat mengambil user_theme seperti:
CATATAN: Ini ditulis Saat Terbang. Itu tidak diverifikasi di multi-blog, tetapi pada instalasi wp sederhana, dan meskipun seharusnya tidak ada banyak perbedaan - tetap ini bukan fungsi produksi, itu hanya untuk menempatkan Anda di jalur yang benar. Diperlukan sanitasi dan memeriksa variabel, kode pembersihan dan FORMULIR MARKUP, serta menambahkan bidang juga ke layar terkait pengguna lainnya (buat pengguna, edit pengguna, edit profil dll.).
CATATAN II: Anda bertanya tentang bentuk gravitasi di uodate Anda - mereka memiliki tambahan untuk itu
sumber
template
danstylesheet
disimpan dalam tabel opsi. Dengan mengatakan itu, kode Anda sejauh ini sangat membantu, terima kasih.Saya tahu ini curang, tetapi saya menggunakan plugin ini. Ini memungkinkan Anda menyalin situs jaringan yang ada dan membuatnya tersedia sebagai templat ketika pengguna baru mendaftar. Anda dapat membuat template blog baru sebanyak yang Anda inginkan. Mereka akan berisi semua konten, plugin, pengaturan dll, dan pengguna dapat memilih satu ketika membuat situs / akun baru :)
http://premium.wpmudev.org/project/new-blog-template/
sumber
Jenis jawaban pertanyaan Anda: Kami menempatkan sebuah plugin yang disebut ' Theme Switch ' di situs ini: focusww.com dan meletakkan bilah sisi di mana Anda dapat memilih dari daftar tema. Ini memungkinkan Anda memilih tema mana yang dapat digunakan dan berapa lama sebelum cookie berakhir untuk kembali ke tema default.
sumber
Jika masih relevan, mungkin ini bisa membantu orang lain mencari solusi serupa
Saya telah menulis posting blog ( http://artofcoding.in/select-theme-while-registering-wordpress-multisite-network/ ) di sini ketika saya memiliki persyaratan yang sama. Semoga ini bermanfaat.
sumber