Bir kullanıcının yeni site kayıt sayfasından hangi temayı yüklemek istediğini seçmesine izin vermek mümkün müdür? Ve site oluşturulduktan sonra, hangi temayı seçtiyse o kadar açıktır.
Wp_get_themes buldum . Mevcut tüm temaları içeren bir açılır menüyü önceden doldurmak bu şekilde mi yapılır? Sitenin doğru tema ile oluşturulması için temanın bilgilerini gerçek kayıt işlemine nasıl iletirsiniz?
Birisi bunu Gravity Forms ile nasıl yapacağını biliyorsa, bu da harika olurdu.
Güncelleme:
Şimdiye kadar sahip olduğum şey, çocuk temalarını dikkate almıyor, bundan sonra çalışacak
Bu işlev, seçilen temayı $ _POST ['custom_theme'] içine kaydederek radyo düğmeli temaların bir listesini çıkarır
/**
* 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' );
Sitenin değerine temanın değerini aktarmanın bir yolu olarak gizli bir alan ekleyeceğimi düşündüm. Bununla ilgili yanlış bir şey var - son adımda değerini kaybediyor, neden henüz emin değilim.
/**
* 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' );
Ve son olarak tema adını yeni oluşturulan siteye aktarmak için kullanılan bir işlev. Bu değişkenleri sabit kod, ancak henüz custom_theme değerini iletemiyorum çalışır. Site iyi oluşturulmuş ancak şablon ve stil sayfası seçenekleri boş. Ne denesem de değer alamıyor. Sanırım daha önce oluşturduğum gizli alana erişmek için $ _GET kullanmam gerekiyor. Yine, bu noktada yapmak istediğim tek şey, aynı tema adını şablon ve stil sayfası seçeneklerine aktarmaktır, çalıştıktan sonra bunları nasıl ayırt edeceğimizi anlayacağım.
/**
* 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' );