Gli shortcode non funzionano sul tema personalizzato
Sto usando un tema personalizzato non sviluppato da me che sembra aver disabilitato o non ha la funzione per tutti gli shortcode, sia quelli di WordPress che quelli dei plugin. Ho principalmente bisogno che questa funzione funzioni tramite gli shortcode generati dai plugin. Ho controllato diverse cose per vedere qual è la causa ma non sono riuscito a trovare dove sia il problema. Ecco cosa ho controllato.
Quando sono tornato al tema 2012, gli shortcode funzionavano correttamente.
Ho disabilitato tutti gli altri plugin per verificare se fosse dovuto a qualche incompatibilità. Nessun cambiamento.
Mi sono assicurato che il template della pagina abbia il loop corretto come indicato in questo post: Gli shortcode dei plugin non funzionano sul tema personalizzato - non so come risolvere
*Modifica: Ecco il codice del template della pagina
<?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 // mentre ( have_posts() ) : the_post();
if(get_the_content()){
?>
<?php if(get_the_ID() == 1228) { ?>
<h1>Moduli</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; // fine 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>Notizie & Informazioni</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']; ?>">Leggi di più</a></div>
</article>
</div>
</div>
</section>
<?php else:?>
<?php
include('testimonials.php');
?>
<?php endif;?>
</aside>
</div>
</div>
<?php get_footer(); ?>
C'è la possibilità che lo sviluppatore originale abbia semplicemente riutilizzato un tema sviluppato per una versione più vecchia di WordPress quando gli shortcode non esistevano.
Qualche idea su dove guardare dopo?
Finalmente ho trovato una soluzione!!! Dopo molte settimane di ricerca e tentativi con diverse soluzioni, si trattava semplicemente di rimuovere "get_" da un riferimento a "the_content" nel mio page.php. Ho modificato questo
<?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()); ?>
In questo
<?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()); ?>
Finora non ho riscontrato problemi e tutti gli shortcode ora funzionano. Grazie a tutti gli altri per il loro contributo, senza di esso non avrei saputo dove e cosa cercare.

Il tuo Loop è corretto. Utilizza 'the_content' (come dovrebbe) che dovrebbe attivare i filtri the_content
e i tuoi shortcode dovrebbero essere elaborati proprio come negli altri temi che hai provato.
Devo concludere che il tuo tema sta rimuovendo i filtri o gli shortcode. Cerca qualcosa come remove_filter( 'the_content',
nei file del tuo tema. Controlla anche add_filter('the_content',
. Poi cerca remove_shortcode
e vedi cosa potrebbe rimuovere.
Forse il tema sta aggiungendo un filtro che interrompe gli shortcode, ma scommetterei su uno dei primi due.
