WordPress get_template_part: solucionar el problema del error de contenido

existe Temas de WordPressproceso de desarrollo.get_template_part() es una función muy utilizada para dividir y reutilizar archivos de plantilla. Sin embargo, muchos desarrolladores se encuentran a menudo con el problema Llamada a la función indefinida content() errores. Este tipo de errores no suelen ser fallos de WordPress, sino problemas con la estructura de la plantilla o la convención de nomenclatura.

图片[1]-WordPress get_template_part 用法详解:解决 content 报错问题

¿Qué es get_template_part()?

get_template_part() es la forma recomendada por WordPress para dividir plantillas, que llama a la sección de plantilla especificada sin duplicar código. Comúnmente utilizado para cargar áreas de contenido,pie de páginaypies de páginayuna barra lateral (en software)etc.

La forma más común de escribir:

get_template_part( 'template-parts/content', get_post_type() );

Lo que hace este código es: basándose en el tipo de artículo actual, carga dinámicamente el tipo de artículo como template-parts/content-post.php tal vez template-parts/content-page.php Documentación.

¿A qué se debe el error de content()?

La notificación de errores suele tener el siguiente aspecto:Error fatal: Uncaught Error: Call to undefined function content()

La mayoría de las veces, no es get_template_part() El problema contigo mismo es que estás en contenido.php Está directamente en el archivo <?php content(); ?>pero contenido() Esta función ni siquiera existe.

En WordPress temáticaMedio.contenido.php es una "plantilla de contenido" y no llama a la función contenido() función.

¿Cuál debería ser la estructura correcta?

Se recomienda la siguiente estructura para la organizaciónplantillaDocumentación:

Archivo maestro de plantillas:index.php tal vez archivo.php

图片[2]-WordPress get_template_part 用法详解:解决 content 报错问题
<?php
while ( have_posts() ) : the_post();
  get_template_part( 'template-parts/content', get_post_type() );
endwhile;
?>

Ficheros de plantillas de contenido: por ejemplo template-parts/content-post.php

<article id="post-<?php the_ID(); ?>" no numeric noise key 1002>
  <header class="entry-header">
    <h2 class="entry-title"><?php the_title(); ?></h2>
  </header>

  <div class="entry-content">
    <?php the_content(); ?>
  </div>
</article>
图片[3]-WordPress get_template_part 用法详解:解决 content 报错问题

La cuestión es:No escriba en estas plantillas contenido()porque WordPress No existe tal función.

Sugerencias para nombrar la estructura de la plantilla

  • contenido.phpPlantilla de contenido por defecto
  • contenido-post.phpPlantillas de tipos de artículos
  • página de contenido.phpPlantillas de tipos de página
  • contenido-producto.php: Plantillas de productos WooCommerce

WordPress cargará primero la versión con el sufijo y, si no existe, volverá a la versión contenido.php.

¿Y si quiero pasar variables?

get_template_part() El paso directo de valores no está soportado por defecto. Si desea pasar un valor, puede utilizar el siguiente método nuevo (WordPress 5.5 y superior):

get_template_part( 'template-parts/content', 'custom', array( 'custom_class' => 'highlight' );

A continuación, recíbalo en la plantilla:

<div class="<?php echo esc_attr( $args['custom_class'] ?? '' ); ?>">
  ...
</div>

corto

hacer uso de get_template_part() Cuando lo hagas, recuerda lo siguiente:

  • El nombre del archivo es contenido-xxx.phpEn lugar de llamar a contenido() función (matem.)
  • Escribir estructuras directamente en el fichero en lugar de definir funciones
  • Nombrado según la jerarquía de plantillas, WordPress hará coincidir automáticamente el
  • WordPress Después de 5.5, puede utilizar $args Paso de parámetros, más flexible

Esto no sólo resolverá el problema de los informes de errores, sino que también hará que el código de su tema sea más claro y modular.

Actualizaciones recientes


Contacte con nosotros
¿No puede leer el tutorial? Póngase en contacto con nosotros para obtener una respuesta gratuita. Ayuda gratuita para sitios personales y de pequeñas empresas
客服微信
Servicio de atención al cliente WeChat
Tel: 020-2206-9892
QQ咨询:1025174874
(iii) Correo electrónico: [email protected]
Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
© Declaración de reproducción
本文作者:托尼屎大颗
EL FIN
Si le gusta, apóyela.
felicitaciones1284 compartir (alegrías, beneficios, privilegios, etc.) con los demás
comentarios compra de sofás

Por favor, inicie sesión para enviar un comentario

    Sin comentarios