Estoy creando un tema para un amigo, pero por alguna razón no puedo hacer que los shortcodes funcionen en Pages. Solo trabajan en Correos.
Mi archivo page.php es muy simple en este momento:
<?php get_header(); ?>
<?php
if (have_posts()) :
while (have_posts()) : the_post();
echo '<div class="hero-unit"><div class="container"><h1>'.get_the_title().'</h1></div></div>';
echo '<div class="container clearfix" id="main-content">'.get_the_content().'</div>';
endwhile;
endif;
?>
<?php get_footer(); ?>
Esto funciona bien, pero solo muestra el código abreviado como texto. IE, estoy tratando de usar el código abreviado [wp_sitemap_page] la página simplemente muestra ‘[wp_sitemap_page]’ en el texto.
¿Cual podría ser el problema?
El contenido de su publicación se muestra a través de echo get_the_content()
que es una función que devuelve el contenido SIN aplicar los filtros predeterminados (wpautop
, do_shortcode
etc) que se aplican normalmente cuando se utiliza the_content()
en cambio.
Esto debería arreglarlo:
<?php
if (have_posts()) :
while (have_posts()) : the_post(); ?>
<div class="hero-unit"><div class="container"><h1><?php the_title(); ?></h1></div></div>
<div class="container clearfix" id="main-content"><?php the_content(); ?></div>
<?php endwhile;
endif;
?>
-
Perfecto. ¡Gracias por tu ayuda, Ennui!
– usuario1636130
13 de diciembre de 2013 a las 13:54
-
@ user1636130 ¡Marque como la solución cuando tenga la oportunidad! También lo acabo de actualizar con el código fijo que usa
the_title()
ythe_content()
más bien queget_the_title()
yget_the_content()
.– hastío
13 de diciembre de 2013 a las 13:55
-
Gracias por su tiempo 🙂 Lo marcaré tan pronto como me lo permitan.
– usuario1636130
13 de diciembre de 2013 a las 13:57
-
también podrías hacer
$content = get_the_content(); echo apply_filters('the_content', $content);
que pasará el contenido sin filtrar devuelto porget_the_content()
a través del filtro predeterminado utilizado enthe_content()
.– hastío
13 de diciembre de 2013 a las 13:57