it-swarm.com.de

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

Ich sehe den folgenden Code häufig in index.php-Dateien. Ich verstehe, dass is_front_page() beim Anzeigen der Startseite der Website (unabhängig davon, ob der Blogpost-Index oder eine statische Seite angezeigt wird) true zurückgibt, während is_home() beim Anzeigen des Blogpost-Index (unabhängig davon, ob er auf der Startseite oder einer statischen Seite angezeigt wird) true zurückgibt. Ich bin immer noch etwas ratlos über die Verwendung des folgenden Codes -

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

Jede Erklärung, warum dieser Code so beliebt ist, wird sehr geschätzt.

14
olliew

Dies zeigt den Titel der Seite an, wenn auf einer statischen Seite Beiträge angezeigt werden.

Z.B.

Ich zeige Beiträge auf meiner Homepage ... Es wird nichts tun.

Wenn ich beispielsweise Posts auf der Seite mit dem Titel " News ..." zeige, wird " News " im ersten Halbjahr angezeigt.

Dies wird verwendet, damit der Titel der Seite angezeigt wird, wenn Beiträge auf einer Seite angezeigt werden, jedoch nicht, wenn Blog-Beiträge auf der Startseite angezeigt werden.

Wir tun dies, weil auf der Startseite der Titel des ersten Beitrags angezeigt wird und dieser zweimal angezeigt wird (einmal oben im ersten Halbjahr und noch einmal, wenn Beiträge durchlaufen werden).

11
shramee

So machen Sie es richtig:

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

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

} elseif ( is_home()){

// Blog page

} else {

// Everything else

}

Dies ist die einzige (richtige) Möglichkeit, Inhalte mit Ihrer Homepage und Ihrer Blog-Seite anzuzeigen oder zu ändern.

18

Ich bin mir nicht sicher, ob "populär" ist, es scheint mir nicht so (aber dann schaue ich mir nicht so viele Themen an).

Sie scheinen genau zu verstehen, was jede Bedingung tut, daher sollte dies für Sie nicht verwirrend sein. Dies kombiniert Bedingungen, um zu überprüfen, ob der Blog-Index und es ist nicht auf der Startseite angezeigt wird.

Ah, der Grund für single_post_title() ist vermutlich, dass der Titel für $wp_query->queried object (von der Hauptabfrage als aktueller Kontext festgelegt) und nicht für $post global (von der sich wiederholenden Schleife festgelegt) angezeigt wird.

In einigen Fällen sind diese identisch, in solchen Fällen jedoch nicht, wenn eine Zustandsprüfung durchgeführt wird. Die Schleife enthält posts , aber das abgefragte Objekt ist page (es sei denn, ich vermische die Dinge :).

4
Rarst

wie man anzeigt

text auf statischer Seite + Beiträge

auf meinem Blog: https: //бригада-будівельників.укр

wie ist das in diesem 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