เป็นไปได้ไหมที่จะอนุญาตให้ผู้ใช้เลือกชุดรูปแบบที่ต้องการติดตั้งจากหน้าสมัครสมาชิกเว็บไซต์ใหม่? และเมื่อสร้างเว็บไซต์แล้วจะติดตั้งธีมที่พวกเขาเลือกอย่างชัดเจน
ผมพบว่า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' );