Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |finished | checked

Jerarquía en Los Templates de WordPress

Cunado nos encontramos haciendo, modificando o creando un Child Theme(Tema hijo) para usarlo en nuestro blog/pagina es necesario saber como es la jerarquía del los Templates en WordPress.

En esta sección vamos a ir trayendo a tema lo escrito en wordpress.org y lo vamos a desmembrar de forma tanto escrita como grafica para que quede lo más claro posible.

Secciones de un Tema en WordPress

Primero veamos las secciones que debe tener un tema en wordpress, en otras palabras cuáles son los archivos php que mínimo debe tener un tema para funcionar.

Como podemos ver en la siguiente imagen traída de developer.wordpress.org el primary template se compone de los siguientes archivos php: index.php, archive.php, single.php, singular.php, page.php, home.php, 404.php y search.php.

En otras palabras los archivos que están en el primary template son los necesarios para que un tema corra adecuadamente.

¿Pero como puedo leer esta jerarquía?

WordPress tratará de encontrar la el archivo PHP correspondiente por ejemplo en site front page, WordPress primero verá si encuentra front-age.php, si no encuentra esta página verá si no hemos definido un post o una página como la primera página que mostrara el blog, en caso de ser un post buscara home.php, si no definimos home.php tratara de cargar como última opción index.php.

Archive Page

La seccion Archive se subdivide en varias secciones más, estas son autor archive, category archive, custom post type archive, custom taxionomy archive, date archive y tag archive. Si no encuentra los archivos correspondientes a estas secciones termina en archive.php.

En caso de no existir archive.php cargará con index.php, tenga en cuenta que este archivo influye en como mostrara los post según lo que esté buscando el usuario puede ser por tiempo de publicado, categoría, etc.

Veamos un recorte de estas secciones:

Autor Archive

Como podemos observar la sección autor se fijara en autor-$nickname.php, autor-$id.php y si no encuentra ninguno de los 2 archivos en autor.php esto esta escrito de esta manera porque pueden ser varios archivos por ejemplo podría ser autor-luis.php ¿y como sé que nickname o id le tengo que poner al archivo?

Para averiguar nuestro nickname podemos hacerlo en Users. Antes de hacer una página como esta recuerda tener una buena contraseña no quieres pasar tu username o de alguien que escribe en tu página.

Lamentablemente WordPress actualmente no nos da el user_id fácilmente así pues recomiendo que uses el método que hay en esta página https://rudrastyh.com/wordpress/get-user-id.html#user_id_column

Category Archive

Category es muy facil de entender primero se fijara el slug si no encuentra se fijará el id claro que es para esa categoria que estamos buscando, los archivos tienen formato category-$slug.php y category-$id.php.

Así pues, si mi categoría es PHP mi category-$slug.php podría ser category-php.php y no se el id podría ser 3 siendo category-$id.php category-3.php

¿Dónde defino el slug y la categoría?

La categoría tanto como el slug las define el Post > category, cabe destacar que solo los post tienen categoría

Por lo general no se usan los archivos category-$slug.php y category-$id.php a menos que quieras hacer una categoría muy personalizada, siendo category.php el más usado.

Custom Post Type Archive

Los custom post types son post personalizados, que se pueden hacer a través de la función register_post_type por lo general se recomienda realizar estos a través de un plug-in para no perderlos al cambiar de tema si es necesario.

Como podemos ver en cuanto a jerarquía primero se mirara archive-$posttype.php y de no encontrar un archivo como este se utilizara archive.php

Custom taxionomy Archive

Las Taxonomies son formas de agrupar post en WordPress, basado en algún tipo de relación entre estos. Por ejemplo, tags y categories también serían Taxonomies

Date archive

No tengo mucho que decir de date archive, es como mostraremos nuestros archivos por fechas. El archivo que buscara es date.php en caso de no ser encontrado utilizara index.php

Tag Archive

Las tag son las etiquetas, en este caso verá si tag-$slug.php existe en caso de no existir se fija si el tag-$id.php existe en caso contrario buscará el archivo tag.php

Singular Page

En el caso de cuando queremos mostrar solo una página tenemos a los post y a las páginas en sí(pages), es por esto que vemos que esta sección se subdivide en 2. Estas 2 subsecciones son las siguientes:

  • Single-Post Page
    • Attachment post
    • Custom post
    • Blog post
  • Static Page
    • page-template
      • custom template
      • default template

Attachment post

Los attachment post son post para media por ejemplo, de una imagen con descripción o texto explicando esta, o un archivo de audio o video. Podríamos imaginarnos podcast con breves descripciones.

Custom post

Los custom post son post totalmente personalizados, por ejemplo pensemos que deseamos hacer un post informativo o de noticias dentro de nuestro blog

Blog Post

Estos son los blogs que uno normalmente escribe entrando a post>new

Site Front Page

En esta sección verá algo diferente y es que buscara el archivo front-page.php primero, en caso de no ser encontrado se buscara una página o un post que sea seleccionado por el usuario.

En caso de ser elegido un post se buscara el archivo home.php si no es encontrado se usara single .php

En caso de elegir una página hará la búsqueda de $custom.php, page-$slug o page-$id, en caso de no encontrar estas usara page.php, si no se encuentra este archivo usará single.php.

Blog post index Page

Esta sería la página principal si es que no se elige una página como página principal.

Error 404 Page

La página que muestra si se encuentra un error está especificada por 404.php en caso de no encontrar este archivo cargará lo de index.php

Search Result Page

El como se mostraran los resultados de busqueda lo especificara el archivo search.php

Category: wordpress
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category