É possível permitir que um usuário selecione qual tema deseja instalar na nova página de inscrição no site? E uma vez que o site é criado, ele obviamente instala o tema escolhido.
Encontrei wp_get_themes . É assim que você preencheria previamente um menu suspenso com todos os temas disponíveis? Como você passa as informações do tema para o processo de inscrição real, para que o site seja criado com o tema correto?
Se alguém sabe como fazer isso com Gravity Forms, isso seria ótimo também.
Atualizar:
Aqui está o que eu tenho até agora, ele não leva em conta os temas filhos, trabalhará nisso depois
Esta função produzirá uma lista de temas com botões de opção, armazenando o tema selecionado em $ _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' );
Eu pensei em adicionar um campo oculto como uma maneira de passar o valor do tema para a criação do site. Há algo errado com isso - no último passo, ele perde seu valor, ainda não sei por que.
/**
* 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' );
E, finalmente, uma função para passar o nome do tema para o site recém-criado. Isso funciona se eu codificar as variáveis, mas ainda não consigo transmitir o valor do custom_theme. O site foi criado corretamente, mas as opções de modelo e folha de estilo estão em branco. Só não está obtendo o valor, não importa o que eu tente. Acho que tenho que usar $ _GET para acessar o campo oculto que criei anteriormente. Novamente, tudo o que eu quero fazer neste momento é passar o mesmo nome de tema para as opções de modelo e folha de estilo. Descobrirei como diferenciá-los depois de fazê-lo funcionar.
/**
* 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' );
fonte
Respostas:
Para fazer o que quiser, você pode adicionar os campos que deseja e depois armazená-los no
user_meta
...(Também é possível armazená-los na
$user_info
matriz / objeto, mas não tenho certeza qual seria o benefício ..)depois de tudo isso, você pode recuperar o user_theme assim:
NOTA: Isso foi escrito On-The-Fly. Não foi verificado no multi-blog, mas em uma instalação simples do wp e, embora não deva haver muita diferença - ainda não é uma função de produção, era apenas para colocá-lo no caminho certo. São necessários saneamento e verificação de variáveis, código de limpeza e FORM MARKUP, além de adicionar o campo a outras telas relacionadas ao usuário (criar usuário, editar usuário, editar perfil etc.).
NOTA II: você perguntou sobre as formas de gravidade no seu uodato - elas têm um complemento para isso
fonte
template
estylesheet
seja armazenado na tabela de opções. Ao dizer isso, seu código tem sido uma tremenda ajuda até agora, obrigado.Eu sei que isso é meio trapaça, mas eu uso esse plugin. Ele permite copiar qualquer site de rede existente e o disponibiliza como modelo quando novos usuários se inscrevem. Você pode criar quantos novos modelos de blog desejar. Eles conterão todo o conteúdo, plugins, configurações, etc, etc, e os usuários poderão escolher um ao configurar um novo site / conta :)
http://premium.wpmudev.org/project/new-blog-template/
fonte
Esse tipo de resposta à sua pergunta: colocamos um plugin chamado ' Theme Switch ' neste site: focusww.com e uma barra lateral na qual você pode escolher uma lista de temas. Permite escolher quais temas podem ser usados e quanto tempo antes que o cookie expire para reverter para um tema padrão.
fonte
Se ainda for relevante, talvez isso possa ajudar outras pessoas a procurar soluções semelhantes
Eu escrevi uma postagem no blog ( http://artofcoding.in/select-theme- while-registering-wordpress-multisite-network/ ) aqui quando eu tinha um requisito semelhante. Espero que isso seja útil.
fonte