WordPress: Cargar otra página/entrada dentro del filtro “the_content” crea un Error Interno del Servidor 500.
Me gustaría modificar el contenido de una publicación con el filtro “the_content”.
Dentro de este filtro, me gustaría cargar el contenido de otra publicación.
Este es mi código:
add_filter( 'the_content', 'my_content_filter' );
function my_content_filter( $content ){
if ( !is_singular( 'my-custom-post-type' ) ){
return $content;
}
ob_start();
echo '<p>SOME HTML BEFORE THE CONTENT</p>';
echo $content;
echo '<p>SOME HTML AFTER THE CONTENT</p>';
$module = get_post( 12345 ); // cargar publicación específica
echo apply_filters( 'the_content', $module->post_content );
echo '<p>SOME MORE HTML</p>';
$html = ob_get_contents();
ob_end_clean();
return $html;
}
Desafortunadamente, esto crea un error interno del servidor 500.
Supongo que se debe a que creé un bucle infinito. ¿Tienes alguna idea de cómo obtener el contenido formateado de otra publicación dentro del filtro “the_content”?
Gracias 🙂
Jan
EDICIÓN
Un poco más de detalles: he creado un tipo de publicación personalizado llamado “sidebars” en el que edito el contenido con un constructor de páginas. Me gustaría añadir estas barras laterales con PHP.
davy.ai
Solución
Para evitar el bucle infinito, debes eliminar el filtro temporalmente antes de obtener el contenido de la otra publicación y luego agregarlo nuevamente. Aquí tienes una versión actualizada de tu código:
Ten en cuenta que las funciones
remove_filter()
yadd_filter()
se utilizan para deshabilitar y habilitar temporalmente el filtro de contenido, de modo que no interfiera con el contenido de la otra publicación que estás cargando. Además, asegúrate de reemplazarmi-tipo-de-publicacion-personalizado
con el nombre real de tu tipo de publicación personalizado, y12345
con el ID de la publicación que deseas cargar.¡Espero que esto ayude!