Etiquetas de plantilla vs get_template_part () vs functions.php

2

¿Cuándo usar etiquetas de plantilla y cuándo usar get_template_part() y cuándo usar function.php ? Estoy confundido con ellos.

Por ejemplo, si quiero mostrar carteras relacionadas en una cartera única, puedo crear una etiqueta de plantilla llamada show_related_portfolios() .

En contraste, puedo crear un archivo llamado content-related-portfolios.php y usarlo como get_template_part( 'content', 'related-portfolios' ) .

O puedo crear una función que recupere carteras relacionadas en functions.php .

¿Hay alguna práctica recomendada para usarlos?

    
pregunta Sodbileg Gansukh 18.12.2013 - 05:55

2 respuestas

3

Una etiqueta de plantilla es solo una función, por lo que no puedo entender la diferencia entre una función en functions.php y una etiqueta de plantilla.

Así que las opciones son 2: function VS file.

La elección correcta depende de cada caso, y todas las cosas @shazzad indicaron que estaba de acuerdo.

Prefiero usar el archivo y get_template_part cuando el código debe contener una gran cantidad de html, porque no me gusta tener funciones que abran y cierren etiquetas php o con un gran eco de salida html.

En pocas palabras, prefiero el archivo cuando la característica necesaria es todo acerca de la presentación y la función cuando necesito un trabajo computacional.

A veces uso ambos, por ejemplo:

if ( ! function_exists('show_related_portfolios') ) {

    function show_related_portfolios( $someargs = array() ) {
      $defaults = array( ... );
      $args = wp_parse_args( $someargs, $defaults );
      $related_q = new WP_query();
      if ( $related_q->have_posts() ) {
        while( $related_q->have_posts() ) { $related_q->the_post();
          // template for singular related portfolio
          get_template_part( 'content', 'related-portfolio' ); 
        }
      }
      wp_reset_postdata(); 
    }

}

de esta manera puedo hacer uso de argumentos de función, mover la gran parte de php dentro de una función y la plantilla puede ser simplemente html en su mayor parte.

El uso de la función también permite usar la función como código corto con muy poco trabajo.

Tenga en cuenta la declaración if ( ! function_exists('show_related_portfolios') ) { : esto evita un error si la función ya está definida y además permite que los temas secundarios anulen la función por completo. Además, gracias al uso de get_template_part los temas secundarios pueden anular fácilmente la visualización del elemento singular.

Tenga en cuenta que es solo un caso, el que usó como ejemplo, pero es imposible una regla general de lo que es mejor.

    
respondido por el gmazzap 18.12.2013 - 11:01
2

get_template_part() debería ser una opción correcta. Porque,

  • Si falta el archivo de plantilla, no se activará ningún error, solo se deja en blanco.
  • Otros / o puede encontrar el archivo por nombre para futuras ediciones
  • El complemento puede usar el enlace y cambiar el archivo dinámicamente

Donde, el uso de la función personalizada podría -

  • desencadenar error si falta de alguna manera Tomaría algún tiempo encontrarlo dónde se escribió la función, si es necesario que otra persona la edite
  • No puede ser modificado por otra función / complemento si no te has ido
    cualquier gancho.

Ventaja de usar la función

  • Podría configurar argumentos para la función, lo que resultará útil con un uso útil. Ej: function( 'Number of related posts', 'Order', 'excluding / inclusion any posts') etc.
  • La parte de la plantilla comprueba la existencia del archivo ( file_exists ), lo que lleva un tiempo de carga, pero las funciones se cargan mucho más rápido.

Esa es mi opinión, otros podrían tener una mejor opinión.

    
respondido por el Shazzad 18.12.2013 - 07:29

Lea otras preguntas en las etiquetas