it-swarm-ko.tech

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

Index.php 파일에 다음 코드가 많이 표시됩니다. is_front_page()은 (블로그 게시물 색인 또는 정적 페이지 표시 여부와 상관없이) 사이트 프론트 페이지를 볼 때 true를 반환하는 반면, is_home()은 블로그 게시물 색인 (프런트 페이지 또는 정적 페이지에 표시됨)을 볼 때 true를 반환한다는 것을 알고 있습니다. 나는 여전히 다음 코드의 사용에 대해 다소 혼란 스럽다.

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

이 코드가 왜 그렇게 인기가 있는지에 대한 설명은 크게 감사하겠습니다.

14
olliew

정적 페이지가 게시물을 표시하도록 설정되어있는 경우 page의 제목이 표시됩니다.

내 홈페이지에 게시물을 표시하면 ... 아무 것도 할 수 없습니다.

만약 내가 News...라는 제목의 페이지에 게시물을 게시하면 H1에 News이 (가) 표시됩니다.

이것은 게시물이 페이지에 표시 될 때마다 페이지의 제목이 표시되도록하기 위해 사용되지만 블로그 게시물이 첫 페이지 (홈 페이지)에 표시 될 때 아무 것도 표시되지 않습니다.

홈 페이지에 있다면 첫 번째 게시물의 제목이 표시되어 두 번 표시됩니다 (H1의 맨 위에 한 번, 게시물이 반복 될 때 다시 한 번).

11
shramee

다음은 올바른 방법입니다.

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

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

} elseif ( is_home()){

// Blog page

} else {

// Everything else

}

이는 홈페이지 및 블로그 페이지로 콘텐츠를 표시하거나 변경하는 유일한 방법입니다.

18
Md. Abunaser Khan

나는 "인기"에 대해 잘 모르겠지만, 나에게는 그렇게 보이지 않습니다 (그러나 나는 그 많은 테마를 보지 않습니다).

각 조건부에서 수행하는 작업을 잘 이해하는 것처럼 보이므로 혼동해서는 안됩니다. 이것은 블로그 색인이 표시되고 있는지 확인하기위한 조건을 결합합니다. and 프론트 페이지에 not입니다.

아, single_post_title()의 이유는 _$wp_query->queried object_ 전역 (반복 루프로 설정)이 아니라 _$post_ (현재 쿼리로 설정)의 제목을 표시하기 때문입니다. .

어떤 상황에서는 이것들이 동일하지만 조건 점검과 같은 경우에는 그렇지 않습니다. 루프에는 posts 가 포함되지만 쿼리 된 객체는 page 나는 것들을 섞고 있습니다 :).

4
Rarst

표시 방법

정적 페이지 + 게시물의 텍스트

내 블로그에 : https : //бригада-будівельників.укр

이 코드에서 얼마나 실제적인지 :


<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