Los shortcodes no funcionan en tema personalizado
Estoy usando un tema personalizado que no desarrollé yo mismo que parece tener deshabilitada o no tiene la función para ningún shortcode, ya sean shortcodes de WordPress o shortcodes de plugins. Principalmente necesito que esta función funcione a través de shortcodes generados por plugins. He revisado varias cosas para ver qué lo está causando pero no he tenido suerte encontrando dónde está el problema. Esto es lo que he verificado.
Cuando cambié de vuelta al tema 2012, los shortcodes funcionaban bien.
He desactivado todos mis otros plugins para verificar si se debía a alguna incompatibilidad. Sin cambios.
Me he asegurado de que la plantilla de página tiene el loop correcto según esta publicación: los shortcodes de plugins no funcionan en tema personalizado - no sé cómo arreglarlo
*Edición: Aquí está el código de la plantilla de página
<?php get_header(); ?>
<div id="main">
<div class="layout">
<div id="content">
<aside id="block_menu_like_division">
<section>
<h1 id="title_like_division"></h1>
<nav id="nav_like_division">
</nav>
</section>
</aside>
<section>
<article>
<?php // mientras ( have_posts() ) : the_post();
if(get_the_content()){
?>
<?php if(get_the_ID() == 1228) { ?>
<h1>Formularios</h1>
<?php the_content(); ?>
<?php }elseif(get_the_ID() == 1191){ ?>
<!-- <h5> </h5> -->
<?php the_content(); ?>
<?php }else{ ?>
<h1><?php the_title(); ?></h1>
<?php
function sup($text){
$true = preg_replace('#(\d+)(st|th|nd|rd)#', '$1<sup class="super">$2</sup>', $text);
return $true;
}
echo sup(get_the_content()); ?>
<?php } ?>
<?php }else{
$arg = query_posts(array('post_parent' => get_the_ID(), 'post_type' => 'page', 'posts_per_page'=>1, 'orderby' => 'menu_order', 'order' => 'ASC' ));
// $arg[0]->guid;
?>
<?php if($arg[0]->ID == 1811):?>
<?php
$ag = query_posts(array('post_parent' => $arg[0]->ID, 'post_type' => 'page','posts_per_page'=>1, 'orderby' => 'menu_order', 'order' => 'ASC' ));
?>
<h1><?php echo $ag[0]->post_title; ?></h1>
<?php echo $ag[0]->post_content; ?>
<?php else:?>
<h1><?php echo $arg[0]->post_title; ?></h1>
<?php echo $arg[0]->post_content; ?>
<?php endif;?>
<?php }?>
<?php // endwhile; // fin del loop. ?>
</article>
</section>
</div>
<aside>
<?php include('quick_links.php'); ?>
<?php
$url = $_SERVER['REQUEST_URI'];
$url_parse = parse_url($url);
$level = explode('/', $url_parse['path']);
if($level[1] == 'education' || $level[1] == 'fellowship'):?>
<?php
$catid = get_query_var('cat');
$s = query_posts( array(
'post_type' => 'post',
'post_status' => 'publish',
'category' => 'news',
'posts_per_page' => 0,
'orderby' => 'post_date',
'order' => 'DESC'));
while( have_posts() ) : the_post();
$newsList[] = array(
'title' => get_the_title(),
'link' => apply_filters('the_permalink', get_permalink()),
'date' => apply_filters('the_time', get_the_time( 'F j, Y' ), 'F j, Y'),
'expert' => apply_filters('the_excerpt', get_the_excerpt()),
'author' => get_the_author(),
);
endwhile;
wp_reset_query();
?>
<section>
<h2>Noticias e Información</h2>
<div id="asideNews" class="itemsList">
<div class="listItem">
<article>
<header>
<h3><a href="<?php echo $newsList[0]['link']; ?>"><?php echo $newsList[0]['title']; ?></a></h3>
</header>
<p><?php echo $newsList[0]['expert']; ?></p>
<div class="readmore"><a href="<?php echo $newsList[0]['link']; ?>">Leer Más</a></div>
</article>
</div>
</div>
</section>
<?php else:?>
<?php
include('testimonials.php');
?>
<?php endif;?>
</aside>
</div>
</div>
<?php get_footer(); ?>
Existe la posibilidad de que el desarrollador original simplemente reutilizó un tema desarrollado para una versión más antigua de WordPress cuando los shortcodes no existían.
¿Alguna idea de dónde buscar a continuación?
¡Finalmente encontré una solución!!! Después de muchas semanas de búsqueda y probar diferentes soluciones, solo fue cuestión de eliminar "get_" de una referencia a "the_content" en mi page.php. Cambié esto:
<?php
function sup($text){
$true = preg_replace('#(\d+)(st|th|nd|rd)#', '$1<sup class="super">$2</sup>', $text);
return $true;
}
echo sup(get_the_content()); ?>
Por esto:
<?php
function sup($text){
$true = preg_replace('#(\d+)(st|th|nd|rd)#', '$1<sup class="super">$2</sup>', $text);
return $true;
}
echo sup(the_content()); ?>
Hasta ahora no he tenido problemas y todos los shortcodes ahora funcionan. Gracias a todos los demás por sus aportes, sin ellos no hubiera sabido dónde ni qué buscar.

Tu Loop es correcto. Utiliza 'the_content' (como debería) lo que debería activar los filtros the_content
y tus shortcodes deberían procesarse igual que en los otros temas que probaste.
Tengo que concluir que tu tema está eliminando filtros o shortcodes. Busca algo como remove_filter( 'the_content',
en los archivos de tu tema. También revisa add_filter('the_content',
. Luego busca remove_shortcode
y observa qué podría estar eliminando.
Quizás el tema está añadiendo un filtro que rompe los shortcodes, pero apostaría por una de las dos primeras opciones.
