web-dev-qa-db-fra.com

Barres latérales dynamiques et écho

Je parviens à ce que ma barre latérale dynamique fonctionne comme suit:

<div class="sidebar sidebar-first">
    <ul class="widget-area first">
        <?php dynamic_sidebar( 'pop-photos-sidebar' ); ?>
    </ul>
</div>

Maintenant, j'essaie de faire fonctionner la barre latérale avec un code différent qui est à l'intérieur d'un code php. J'ai essayé d'utiliser le code < ?php dynamic_sidebar( 'pop-photos-sidebar' ); ? > ci-dessus et il s'est cassé sur mon site car le code php dynamic_sidebar se trouve dans un autre code php. J'ai donc essayé de créer une fonction $ comme ceci:

$newssidebar = dynamic_sidebar( 'pop-news-sidebar' );
            echo '<div class="sidebar sidebar-first">
                <ul class="widget-area first">
                '.$newssidebar.'
                 </ul>
             </div>';

La barre latérale dynamique "pop-news-sidebar" a été affichée avec succès, mais .. ce n'est pas à l'intérieur de la zone de widgets de classe ul, ni à l'intérieur de la barre de menu div class sidebar-first. Comment pourrais-je faire en sorte que ma barre latérale dynamique soit correctement affichée dans les classes ul et div énumérées ci-dessus, comme il se doit? Aurais-je même recours à l'écho? Je ne pensais pas qu'il était nécessaire de coller le code complet, mais le voici quand même:

<?php
    if( fake if code ) {
        if( another fake if code ) {
            $newssidebar = dynamic_sidebar( 'pop-news-sidebar' );
            echo '<div class="sidebar sidebar-first">
                <ul class="widget-area first">
                '.$newssidebar.'
                </ul>
            </div>';
        }else if( fake else ) {
            echo 'some other code';
         }
    }

?>

Toute aide serait extrêmement appréciée! :)

1
I am not a Frog

Vous n'avez pas besoin de echo dynamic_sidebar(). Terminez votre echo, appelez dynamic_sidebar(), puis démarrez une nouvelle echo. Pour simplifier les choses, fermez/rouvrez vos balises PHP:

<?php
if( fake if code ) {
    if( another fake if code ) {
        ?>
        <div class="sidebar sidebar-first">
            <ul class="widget-area first">
                <?php dynamic_sidebar( 'pop-news-sidebar' ); ?>
            </ul>
        </div>
        <?php
    } else if( fake else ) {
        echo 'some other code';
    }
}    
?>
1
Chip Bennett