web-dev-qa-db-fra.com

Logique pour imprimer/faire écho à une classe css uniquement pour le 1er post et ignorer toutes les post après le 1er?

J'essaie d'obtenir une fonction pour obtenir trois messages et imprimer/écho le premier message avec la classe active et le reste du message sera Normal.

J'ai essayé ce code dans functions.php pour générer et n'ai pas obtenu le résultat.

function slider_news() {
        $args = array(
      'numberposts' => 3
    );
            $latest_posts = get_posts($args);   

            foreach ($latest_posts as $post) {
            $num    = 0;
            $newnum = $num + 1; 
            $num    = $newnum;

            if ($num =1) {

                echo 'Post with <div class="active">1st Post </div ';

                $newnum = $num + 1; 

            }


            else{

                echo 'Post with <div class="Normal">All other posts except 1st</div>';

                }
                                            }
                                }       

Le code source que j'ai obtenu de cette fonction est ci-dessous

Post with <div class="active">1st Post </div>
Post with <div class="active">1st Post </div>
Post with <div class="active">1st Post </div>
1
Nimesh

Comme je l'ai noté dans les commentaires, il s'agit davantage d'une question de langage de programmation que d'une question de développement WordPress, et cela vaut également pour la deuxième question. Cependant, au lieu d’ajouter aux commentaires des commentaires et de faire plus d’erreurs, j’écrirai une réponse.

function slider_news() {

    $num = 0;
    $args = array( 'numberposts' => 3 );

    $latest_posts = get_posts( $args );   

    foreach ( $latest_posts as $post ) {

        $num++; //PHP increment operator ++ (add 1 to value)

        if ( 1 === $num ) { //using a single equals as in original would set the value, === is strict equivalence

            echo 'Post with <div class="active">1st Post</div>';
            //example was missing final ">"

        } else {

            echo 'Post with <div class="Normal">All other posts except 1st</div>';

        }

    }

}

Dans ce qui précède, je ne vois aucun problème à alterner entre guillemets simples et doubles. Tant que vous êtes cohérent avec l'utilisation de guillemets simples pour définir des chaînes, vous pouvez utiliser des guillemets doubles comme bon vous semble, mais vous devrez éviter les guillemets simples destinés à être imprimés. Pour plus d'informations, je vous suggère de lire la syntaxe PHP. Il n'y a pas d'exception spéciale pour WordPress à considérer.

3
CK MacLeod