web-dev-qa-db-fra.com

if (is_home () &&! is_front_page ())

Je vois beaucoup le code suivant dans les fichiers index.php. Je comprends que is_front_page() renvoie true lors de l’affichage de la page d’accueil du site (qu’il s’agisse de l’index des articles de blog ou d’une page statique), alors que is_home() renvoie true lorsque l’index des articles de blog (affiché sur la page d'accueil ou sur une page statique). Je suis encore un peu perplexe sur l'utilisation du code suivant -

        <?php if ( is_home() && ! is_front_page() ) : ?>
            <header>
                <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
            </header>
        <?php endif; ?>

Toute explication de la popularité de ce code est grandement appréciée.

14
olliew

Cela affichera le titre de la page lorsqu'une page statique est définie pour afficher les publications.

E.g.

Je montre des articles sur ma page d'accueil ... Cela ne fera rien.

Si, par exemple, je montre des articles sur la page intitulée News ... Cela affichera News dans H1.

Ceci est utilisé pour que le titre de la page soit affiché, chaque fois que des articles sont affichés sur une page, mais rien lorsque les articles de blog sont affichés sur la page d'accueil (page d'accueil).

Nous le faisons parce que si c'est sur la page d'accueil ... le titre du premier message sera affiché, ce qui le fera apparaître deux fois (une fois au sommet de H1 et une fois lorsque les messages sont parcourus en boucle).

11
shramee

Voici comment le faire correctement:

if ( is_front_page() && is_home() ) {
// Default homepage

} elseif ( is_front_page()){
// Static homepage

} elseif ( is_home()){

// Blog page

} else {

// Everything else

}

C’est le seul moyen (correct) d’afficher ou de modifier du contenu avec votre page d’accueil et votre page de blog.

18
Md. Abunaser Khan

Je ne suis pas sûr de "populaire", cela ne me semble pas tellement (mais ensuite, je ne regarde pas autant de thèmes).

Vous semblez bien comprendre ce que fait chaque conditionnel, cela ne devrait donc pas vous dérouter. Cela combine des conditions pour vérifier que l’index de blog est affiché et c’est pas sur la page d’accueil.

Ah, je suppose que la raison de single_post_title() est qu’elle affiche le titre de $wp_query->queried object (défini par la requête principale en tant que contexte actuel), plutôt que $post global (défini par une boucle itérative).

Dans certaines circonstances, elles seront identiques, mais pas dans les cas de vérification de l'état. La boucle contiendra posts , mais l’objet interrogé sera page (à moins que je ne mélange les choses :).

4
Rarst

comment afficher

texte sur page statique + posts

sur mon blog: https: //бригада-будівельників.укр

comment le realyse dans ce code:


<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">

    <?php
    if ( have_posts() ) :

        if ( is_home() && ! is_front_page() ) : ?>
            <header>
                <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
            </header>

        <?php
        endif;

        /* Start the Loop */
        while ( have_posts() ) : the_post();

            /*
             * Include the Post-Format-specific template for the content.
             * If you want to override this in a child theme, then include a file
             * called content-___.php (where ___ is the Post Format name) and that will be used instead.
             */
            get_template_part( 'template-parts/content', get_post_format() );

        endwhile;

        the_posts_navigation();

    else :

        get_template_part( 'template-parts/content', 'none' );

    endif; ?>




    </main><!-- #main -->
</div><!-- #primary -->

 enter image description here 

0
Yaroslav Kostak