¿Manera correcta de usar get_template_part () y get_post_format () con tipos de publicación personalizados?

2

Tengo un tipo de publicación personalizada de 'competiciones'. Para personalizar la pantalla de este CPT en, por ejemplo, listados de categorías, estoy haciendo lo siguiente:

  • Crea un archivo category-competitions.php
  • Crea un archivo content-competitions.php
  • Dentro del bucle en ese archivo, llame a get_template_part('content-competitions', get_post_format() )'

Esto funciona, pero no estoy seguro de que este sea el método correcto. ¿Es necesario incluir todo el archivo category-competitions.php para cambiar esa línea, o hay una forma integrada para lograr esto que me estoy perdiendo?

    
pregunta EpF 23.06.2013 - 15:14

1 respuesta

4

Lo que has hecho incluirá content-competitions-<post-format>.php . No sé si eso es lo que quieres, pero eso es correcto en lo que respecta a la estructura.

Tampoco sé qué quiere decir con "cambiar esa línea", pero get_template_part usará los dos parámetros para construir un nombre de archivo / ruta, así que sí, debe incluir todo. Eche un vistazo a la explicación en el Codex :

<?php get_template_part( 'loop', 'index' ); ?>
     

hará un PHP require() para el primer archivo que existe entre estos, en esta prioridad:

        wp-content/themes/twentytenchild/loop-index.php
        wp-content/themes/twentyten/loop-index.php
        wp-content/themes/twentytenchild/loop.php
        wp-content/themes/twentyten/loop.php

Lo que obtienes con get_template_part es

  1. "nombre del tema principal o secundario", primero uno y luego el otro
  2. más "primer parámetro"
  3. Más "-"
  4. más "segundo parámetro"
  5. más ".php"

O ...

  1. "nombre del tema principal o secundario", primero uno y luego el otro
  2. más "primer parámetro"
  3. más ".php"

... si no se encuentra nada con el segundo parámetro.

No hay acceso directo. WordPress no puede adivinar qué archivo quieres incluir.

Si pudieras asignar un nombre a tus archivos como postformat.php , podrías usar solo el primer parámetro:

get_template_part( get_post_format() );

No sé si esa es una posibilidad, ya que ese archivo post-format.php se usaría para cualquier publicación que tenga ese formato de publicación nombrado.

    
respondido por el s_ha_dum 23.06.2013 - 18:55

Lea otras preguntas en las etiquetas