사용자가 새 사이트 가입 페이지에서 설치하려는 테마를 선택할 수 있습니까? 그리고 일단 사이트가 만들어지면, 그들이 선택한 테마를 분명히 설치합니다.
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' );