Formas de ter múltiplos templates front-page.php que podem ser trocados?

5

Eu essencialmente quero criar vários modelos front-page.php diferentes com loops e layouts diferentes e, em seguida, apresentar uma opção no painel de administração para selecionar um modelo em um dia e um modelo diferente em outro dia.

Isso pode ser feito, suponho, enganando o Wordpress e selecionando uma página estática para aparecer como página inicial e selecionando um modelo de página personalizado na tela de edição de página que realmente não é uma página "estática", mas sim uma página com um loop completo - um dos vários modelos de página personalizados que seriam foram minhas opções front-page.php.

Outra maneira seria ter todos os meus loops e layouts personalizados incluídos em instruções if em uma das opções front-page.php e apresentando que envolvem uma das instruções if a cada vez. (Isso parece razoável - embora um pouco desajeitado para mim - mas tenho a sensação de que não é tão grande e que há problemas, como o aumento do tempo de carregamento).

Há alguma opção que me falta? Ou talvez plugins que fazem isso por mim? Devo admitir que estou surpreso por não ter conseguido encontrar um plugin que permita que você selecione uma lista de modelos para exibir a página front-page.php / index.php sem precisar recorrer à página estática hack - variações de loops e layouts de página inicial devem ser uma solicitação comum.

    
por Edmund Heaphy 16.08.2014 / 05:13

2 respostas

5

Uma maneira é ter um único front-page.php e, em seguida, usar get_template_part() , para mostrar um conteúdo diferente com base na escolha do usuário.

Código bruto:

get_header();

$layout = get_option( 'front_page_layout', 'default' );
get_template_part( 'front-page', $layout );

get_footer();

Depois disso, você precisa criar um arquivo para cada layout, eles devem ser chamados, algo como:

  • front-page-one.php
  • front-page-two.php
  • front-page-three.php
  • front-page-default.php

O último será usado quando a opção não estiver definida, por exemplo quando o tema é apenas ativado.

É claro que você precisa de uma página no backend em que os usuários possam escolher o modelo e salvar a opção 'front_page_layout'.

Tendo apenas um front-page.php , será facilmente reconhecido por qualquer pessoa que veja o seu tema sem ter de procurar código.

Outra alternativa é usar front-page.php para conter o layout padrão, depois disso, você pode criar alguns layouts alternativos usando modelos de página .

/*
Template Name: Home Page Alternative One
*/

Desta forma, seus usuários podem criar uma página, atribuir a ela um dos modelos que você criou e, finalmente, definir essa página como a primeira página na lendo as configurações .

Após a primeira vez, para alterar o layout da página inicial, os usuários precisam apenas alterar o modelo de página da página como uma página inicial estática.

Esta segunda opção exige um pouco mais de trabalho para os usuários, mas impede que você tenha uma página de configurações de tema onde definir a opção 'front_page_layout'.

    
por gmazzap 16.08.2014 / 13:39
1

Existe apenas uma opção, a dos modelos de página. É assim que 99% dos temas funcionam e com o que os usuários e implementadores do wordpress estão acostumados. Você pode tentar ser único, mas ninguém irá apreciá-lo.

    
por Mark Kaplun 16.08.2014 / 05:30