Gli shortcode non funzionano sul tema personalizzato

1 feb 2013, 17:25:19
Visualizzazioni: 26.7K
Voti: 6

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>&nbsp</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?

8
Commenti

Pubblica il codice del tuo Loop, per favore.

s_ha_dum s_ha_dum
1 feb 2013 17:27:00

Codice aggiunto sopra

NTL0820 NTL0820
1 feb 2013 18:32:29

Controlla il tuo functions.php o altri file di inclusione per filtri su the_content, come add_filter('the_content', 'strip_shortcodes');

Rob Vermeer Rob Vermeer
1 feb 2013 18:42:12

C'erano filtri, ma nessuno riferito agli shortcode. Inoltre, ho fatto una ricerca per "shortcodes" e "shortcode" nel file functions.php e ho ottenuto 0 risultati

NTL0820 NTL0820
1 feb 2013 18:45:24

Farei una ricerca su the_content per vedere quali filtri ci sono.

Rob Vermeer Rob Vermeer
1 feb 2013 18:46:14

Nessun risultato. Puoi vedere l'intero functions.php qui: http://pastie.org/6014295

NTL0820 NTL0820
1 feb 2013 18:51:41

Usa la funzione che vedi qui: http://goo.gl/3IIRY per vedere quali filtri ci sono per the_content.

Rob Vermeer Rob Vermeer
1 feb 2013 22:01:25

Sfortunatamente non credo sia una soluzione. Il problema potrebbe essere in un file diverso da functions.php?

NTL0820 NTL0820
6 feb 2013 19:59:27
Mostra i restanti 3 commenti
Tutte le risposte alla domanda 2
0

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.

13 mar 2013 22:07:10
1

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.

1 feb 2013 18:43:59
Commenti

Verificato per tutti questi senza risultati. Non ci sono filtri aggiunti o rimossi per the_content o remove_shortcode.

NTL0820 NTL0820
1 feb 2013 18:55:09