Crear una plantilla de página de blog personalizada de la manera correcta

8

Quiero crear una nueva plantilla de página personalizada para la presentación de publicaciones de blog. Me doy cuenta de que cuando asigna una página para mostrar publicaciones a través de Configuración> Lectura , luego asignará a home.php para mostrar el contenido de esa página, es decir, publicaciones en una página. Además, la opción de asignar una plantilla de página en la vista de edición de página desaparece.

En este momento muestra un artículo predeterminado por vista de artículo. Quiero proporcionar otra opción para que el administrador seleccione una plantilla diferente que pueda diseñar los blogs en un diseño de ceñidor o mampostería. No estoy seguro de cómo hacer esto.

Podría hacerlo no asignando la página para mostrar blogs en el área Configuración> Lectura del administrador y luego permitiendo que el usuario administrador asigne la plantilla específica a la página usando el menú Atributos de la página en la edición de la página, pero de acuerdo con https://make.wordpress.org / themes / 2014/06/28 / correct-handling-of-static-front-page-and-custom-blog-posts-index-template / , esta es la manera INCORRECTA .

Intenté buscar soluciones en Google, pero todo lo que encuentro son recomendaciones para usar complementos. ¿Podría alguien señalarme algunos recursos útiles?

Ryan Coolwebs
fuente
Supongo que el problema original se resolvió hace mucho tiempo, pero solo quería decir que leer el código fuente de los complementos me ha enseñado mucho. Si puede encontrar un complemento en el directorio WP.org, puede hacer clic en la pestaña de desarrolladores para ver el código directamente desde el navegador y ver cómo funciona.
rtpHarry

Respuestas:

8

No olvide que Wordpress fue diseñado principalmente para ser un CMS de blogs, por lo que cuando se trata del desarrollo de temas, los desarrolladores a menudo optan por un enfoque no estándar a cambio de la posibilidad de más funciones.

Los desarrolladores de temas tienen tres opciones cuando se acercan a esto, una de las cuales (# 2 a continuación) mencionó.

  1. Edite directamente index.phppara modificar el índice del blog. Esta no es una buena opción porque index.phpdebería ser una alternativa en caso de que falte otra parte de su plantilla.

    • Pros: rápido y fácil
    • Contras: propenso a errores y contra principios orientados a objetos
  2. Cree una plantilla de página para el índice del blog. Como dijiste, muchos desarrolladores de temas eligen seguir esta ruta porque es una forma rápida de darte control sobre el índice del blog, y en realidad te da la posibilidad de jugar con diferentes plantillas de índice del blog (lo cual es útil al desarrollar un tema versátil )

    • Pros: versátil, permite construir un tema robusto
    • Contras: pierde la capacidad de llamar a la funcionalidad nativa de Wordpress que pertenece al índice del blog.
  3. Crea un front-page.php, home.phpy index.phpen tu tema. El front-pageserá la página de inicio para el tema. homepredeterminará su índice de blog y indexserá su respaldo para todas las plantillas.

    • Pros: Limpia y hace uso completo de los objetos y métodos nativos de Wordpress
    • Contras: Limitado por Wordpress: no es ideal para muchos de los tipos de temas ricos en opciones que ves hoy

Personalmente, me gusta ir con el # 2, porque la mayoría de mis proyectos de desarrollo de Wordpress en estos días no son solo blogs: son sitios completos con una arquitectura de información profunda y una interactividad compleja.

Orun
fuente
Documentación para esta funcionalidad: developer.wordpress.org/themes/basics/template-hierarchy/…
Pixelsmith
0

Voy a cubrir varias bases en mi respuesta. :)

Si está creando su propio tema y desea cambiar la presentación predeterminada de algunos tipos de páginas (por ejemplo, la página de archivo de categoría o una sola página de publicación de blog), consulte el diagrama de la jerarquía de plantillas de WordPress . Muestra qué archivos en su directorio de temas se utilizan para mostrar qué tipos de publicación.

Al tener un archivo php en su tema que coincida con un archivo en esa jerarquía, WordPress lo usará automáticamente, como single.phppara mostrar una sola publicación. Si ya tiene un tema con ese archivo, obviamente puede cambiar el archivo y se reflejará en el sitio.

Por separado, si desea tener plantillas de página personalizadas pero solo desea que un administrador pueda cambiarlas (por correo), entonces debe hacer algunas comprobaciones de roles y capacidades; Esta respuesta de StackExchange puede ser útil. (Aún necesitaría crear esas plantillas de página personalizadas, consulte este artículo de Smashing Magazine ).

De lo contrario, si desea que un administrador elija de forma más global plantillas de página / publicación basadas en ciertos criterios, o elija plantillas de página personalizadas para todo el sitio, entonces deberá agregar una opción de área de administración a su tema, y ​​algunas personalizadas código en su tema para mostrar la página correcta en función de esa opción. Agregar una opción al área de administración se realiza fácilmente con uno de los muchos complementos, pero también se puede hacer a mano (consulte, por ejemplo, este artículo en SitePoint ).

iguanarama
fuente
1
Gracias por tu respuesta. Soy consciente de cómo hacer plantillas de página para páginas / publicaciones basadas en la jerarquía, pero no puedo encontrar una manera de dar opciones de plantilla para la "Página de índice de publicaciones de blog" que usa home.php (usando la misma terminología que el diagrama tu has previsto). Esto se establece cuando un usuario administrador elige una página para mostrar publicaciones en Panel> Configuración> Lectura. Eso luego asigna la página home.php / index.php. No puedo encontrar una manera de crear una plantilla alternativa sin asignar la página en Panel> Configuración> Lectura.
Ryan Coolwebs
@RyanCoolwebs Probablemente necesite agregar una opción de administración a su tema que permita elegir entre estilos de visualización para la página de índice de publicaciones del blog, y luego edite home.php para leer el valor de la opción y mostrar la variación de página adecuada.
iguanarama
Sí, creo que usar la función de personalización es probablemente la mejor manera de hacerlo. Puedo verificar las opciones del personalizador y luego recuperar la parte de plantilla adecuada.
Ryan Coolwebs
0

Ok, quieres decir que quieres crear tu propia página de plantilla para mostrar publicaciones de blog, ¿verdad?

Luego, vaya de esta manera, cree un archivo php llamado blog-template.php

Dentro de ese archivo coloque este código en la parte superior de cada cosa.

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

Luego, debajo del código dado arriba, coloque todo su código de la index.php/home.phppágina a esta página anterior, guarde el archivo y ahora cree una página dashboard, digamos que el nombre de esa página es "Blog"Ahora desde el lado derecho chose page templateque acabamos de crear a partir Blog Postde ese menú desplegable de plantillas .

Publique la página y está listo para tener su propia página para mostrar sus publicaciones.

Avíseme si necesita algo más.

Akram ul haq
fuente
OK, así que acaba de reformular la solución que OP declaró claramente como incorrecta;) Creo que crear una plantilla de página y usarlo como índice de blog no es el mejor enfoque.
Krzysiek Dróżdż
No es realmente incorrecto per se, solo que OP no entendió por qué la gente tiende a hacerlo de esta manera
Orun