Criando modelo de página de blog personalizado da maneira certa

8

Quero criar um novo modelo de página personalizado para a apresentação de postagens do blog. Sei que quando você atribui uma página para exibir postagens em Configurações> Leitura , ele atribui o home.php para exibir o conteúdo dessa página - sendo postagens em uma página. Também a opção de atribuir um modelo de página na visualização de edição de página desaparece.

No momento, ele exibe um artigo padrão por exibição de artigo. Desejo fornecer outra opção para o administrador selecionar um modelo diferente que possa estilizar os blogs em um layout de cinturão ou alvenaria. Não tenho certeza de como fazer isso.

Eu poderia fazer isso não atribuindo a página para exibir blogs na área Configurações> Lendo o administrador e permitindo ao usuário administrador atribuir o modelo específico à página usando o menu Atributos da página na edição da página, mas de acordo com https://make.wordpress.org / themes / 2014/06/28 / manuseio correto da página-estática-primeira-página-e-blog-personalizado-posts-índice-modelo / , esse é o caminho errado .

Eu tentei o Google pesquisando soluções, mas tudo o que continuo encontrando são recomendações para os plugins. Alguém poderia me indicar alguns recursos úteis?

Ryan Coolwebs
fonte
Eu acho que a questão original está resolvida há muito tempo, mas eu só queria dizer que a leitura do código-fonte dos plugins me ensinou muito. Se você pode encontrar um plug-in no diretório WP.org, pode clicar na guia de desenvolvedores para visualizar o código diretamente do navegador e ver como o faz.
rtpHarry

Respostas:

8

Não se esqueça que o Wordpress foi projetado principalmente para ser um CMS para blogs, portanto, quando se trata de desenvolvimento de temas, os desenvolvedores geralmente optam por uma abordagem não padrão em troca do potencial de mais recursos.

Os desenvolvedores de temas têm três opções quando abordam isso, uma das quais (nº 2 abaixo) mencionada.

  1. Edite diretamente o index.phppara modificar o índice do blog. Essa não é uma boa opção, pois index.phpdeve ser o substituto caso outra parte do seu modelo esteja ausente.

    • Prós: rápido e fácil
    • Contras: propenso a erros e contra princípios orientados a objetos
  2. Crie um modelo de página para o índice do blog. Como você disse, muitos desenvolvedores de temas optam por seguir esse caminho, porque é uma maneira rápida de fornecer controle sobre o índice do blog e, na verdade, permite que você brinque com diferentes modelos de índice do blog (o que é útil ao desenvolver um tema versátil) )

    • Prós: Versátil, permite criar um tema robusto
    • Contras: você perde a capacidade de chamar a funcionalidade nativa do Wordpress que pertence ao índice do blog.
  3. Criar um front-page.php, home.phpe index.phpem seu tema. O front-pageserá a home page para o tema. homeusará como padrão o índice do seu blog e indexserá seu substituto para todos os modelos.

    • Prós: Limpa e faz pleno uso dos objetos e métodos nativos do Wordpress
    • Contras: Limitado pelo Wordpress: não é ideal para muitos dos tipos de temas ricos em opções que você vê hoje

Pessoalmente, gosto de seguir com o # 2, porque a maioria dos meus projetos de desenvolvimento Wordpress atualmente não são apenas blogs: são sites inteiros com arquitetura de informações profunda e interatividade complexa.

Orun
fonte
Documentação para esta funcionalidade: developer.wordpress.org/themes/basics/template-hierarchy/…
Pixelsmith
0

Indo cobrir várias bases na minha resposta. :)

Se você estiver criando seu próprio tema e quiser alterar a apresentação padrão de alguns tipos de páginas (por exemplo, a página de arquivamento de categorias ou uma única página de postagem do blog), verifique o diagrama da hierarquia de modelos do WordPress . Ele mostra quais arquivos no diretório de temas são usados ​​para exibir quais tipos de postagem.

Por ter um arquivo php no seu tema que corresponde a um arquivo nessa hierarquia, ele será usado automaticamente pelo WordPress - como single.phppara exibir uma única postagem. Se você já tem um tema com esse arquivo, obviamente pode alterar o arquivo e ele será refletido no site.

Separadamente, se você deseja ter modelos de página personalizados, mas apenas deseja que um administrador possa alterá-los (post a post), será necessário verificar algumas funções e recursos; esta resposta do StackExchange pode ser útil. (Você ainda precisará criar esses modelos de página personalizados, consulte este artigo da Smashing Magazine ).

Caso contrário, se você quiser que um administrador escolha de maneira mais global modelos de página / postagem com base em determinados critérios ou escolha modelos de página personalizados para todo o site, será necessário adicionar uma opção de área de administração ao seu tema e algumas opções personalizadas. código no seu tema para exibir a página correta com base nessa opção. Adicionar uma opção à área administrativa é fácil com um dos muitos plugins, mas também pode ser feito manualmente (consulte, por exemplo, este artigo no SitePoint ).

iguanarama
fonte
1
Obrigado pela sua resposta. Estou ciente de como criar modelos de página para páginas / postagens com base na heirachy, mas não consigo descobrir uma maneira de fornecer opções de modelo para a "Página de índice de postagens de blog" que está usando home.php (usando a mesma terminologia do diagrama você forneceu). Isso é definido quando um usuário administrador escolhe uma página para exibir postagens em Painel> Configurações> Leitura. Isso então atribui a página home.php / index.php. Não consigo descobrir uma maneira de criar um modelo alternativo sem atribuir a página em Painel> Configurações> Leitura.
Ryan Ryanwebs
@RyanCoolwebs Você provavelmente precisará adicionar uma opção de administrador ao seu tema que permita uma escolha entre os estilos de exibição da página de índice das postagens do blog e, em seguida, edite home.php para ler o valor da opção e exibir a variação de página apropriada.
Iguanarama
Sim, acho que usar o recurso de personalização é provavelmente a melhor maneira de fazer isso. Posso verificar as opções do personalizador e recuperar a parte do modelo apropriada.
Ryan Coolwebs
0

Ok, você quer criar sua própria página de modelo para mostrar as postagens do blog, certo?

Em seguida, siga este caminho e crie um arquivo php chamado blog-template.php

Dentro desse arquivo, coloque esse código em cima de tudo.

<?php 
/*
* Template Name: Blog Post
*/
?>

Em seguida, abaixo do código fornecido, coloque todo o código da index.php/home.phppágina para a página acima, salve o arquivo e agora crie uma página dashboard, digamos que o nome dessa página seja "Blog"Agora, agora, do lado direito, chose page templateque acabamos de criar a Blog Postpartir desse menu suspenso de modelos .

Publique a página e você estará pronto para ter sua própria página para mostrar suas postagens.

Deixe-me saber se mais alguma coisa é necessária.

Akram ul haq
fonte
OK, então você acabou de reformular a solução que o OP declarou claramente errada;) Criar um modelo de página e usá-lo como índice de blog não é a melhor abordagem, eu acho.
Krzysiek Dróżdż
Não é realmente errado per se, apenas isso OP mal entendido por que as pessoas tendem a fazê-lo desta maneira
Orun