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


23

index.php 파일에서 다음 코드를 많이 볼 수 있습니다. is_front_page()사이트 게시물 페이지 (블로그 게시물 색인 또는 정적 페이지 표시 여부)를 is_home()볼 때 true 를 반환하고 블로그 게시물 색인 (전방 페이지 또는 정적 페이지에 표시)을 볼 때 true 를 반환 한다는 것을 알고 있습니다. 나는 여전히 다음 코드의 사용에 대해 다소 혼란스러워합니다.

<?php if ( have_posts() ) : ?>

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

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

답변:


15

정적 페이지가 게시물을 표시하도록 설정된 경우 페이지 제목이 표시됩니다 .

예 :

내 홈페이지에 게시물을 표시합니다 ... 아무것도하지 않습니다.

예를 들어 News 라는 페이지에 게시물을 표시하면 H1에 뉴스 가 표시 됩니다.

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

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


슈 라미 감사합니다. <h1>에서 블로그 색인 페이지의 제목을 찾아 내려고했지만 실제로는 어디에도 나타나지 않습니다. 나는 그들 중 일부는 스크린 리더를 사용하는 사람들을 돕기 위해 그것을 사용하고 실제 텍스트를 숨기고 있다고 생각합니다.
olliew

글쎄 ... 위의 뉴스와 같이 어떤 컨텍스트 게시물이 사용되는지 아는 데 도움이되지만, 주로 SEO 에 대한 것이므로 H1은 검색 봇이 페이지 내용을 더 잘 이해하도록 돕는 데 큰 역할을합니다.
shramee

26

올바른 방법은 다음과 같습니다.

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

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

} elseif ( is_home()){

// Blog page

} else {

// Everything else

}

이것은 홈페이지와 블로그 페이지에서 컨텐츠를 표시하거나 변경할 수있는 유일한 방법입니다.


4

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

각 조건부에서 수행하는 작업을 잘 이해하는 것처럼 보이므로 혼동해서는 안됩니다. 이 콤바인 조건은 블로그 지수가 표시되고 있음을 확인 하고 그건 하지 첫 페이지에.

아, single_post_title()내가 추측 할 이유 $wp_query->queried object$post전역 (반복 루프로 설정 )이 아니라 제목 (현재 쿼리로 설정)에 대한 제목을 표시 하기 때문 입니다.

어떤 상황에서는 이것들이 동일하지만 조건 점검과 같은 경우에는 그렇지 않습니다. 루프에는 게시물 이 포함 되지만 쿼리 된 객체는 페이지가됩니다 (내가 혼합하지 않는 한) :


최근에 많은 템플릿을 살펴 보았으며 매우 일반적입니다. 루프가하는 일을 이해한다는 것이 옳습니다. 왜 사람들 이이 특정 방식으로 루프를 선택하는지 이해하지 못합니다. the_title () 대신 single_post_title을 사용하는 이유는 무엇입니까?
olliew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.