WordPress 루프: 정의 및 알아야 할 사항

게시 됨: 2023-10-25

당신이 WordPress 테마 개발자, 프로그래머, 또는 WordPress 루프가 무엇인지 배우고 싶어하는 열렬한 팬이라면 이 기사가 당신을 위한 것입니다! 더 이상 고민하지 말고 기본부터 시작해 보겠습니다. 루프란 무엇입니까?

WordPress 루프는 WordPress 게시물을 표시하거나 간단히 표현하는 PHP 코드입니다. 특정 웹 페이지에 게시물을 표시하기 위해 다양한 테마에서 사용됩니다. 여러분이 보는 대부분의 페이지에서 실행될 뿐만 아니라 원하는 대로 수정하고 사용자 정의할 수도 있습니다.

이러한 웹사이트 루프는 댓글 수를 기준으로 게시물을 나열하고, 이미지가 포함된 게시물을 표시하는 등의 작업에 사용될 수 있습니다.

루프를 살펴보면 게시물을 표시하기 위해 일부 기능이 기본적으로 실행되는 것을 볼 수 있습니다. 테마 개발자는 해당 기능과 템플릿 태그를 사용하여 루프의 각 게시물이 표시되는 방식을 사용자 정의할 수 있습니다.

이러한 템플릿 태그는 WordPress 기본 루프 내에서만 작동하며 게시물 데이터의 형식을 지정하고 정렬하고 게시하는 데 사용됩니다.

WordPress 루프는 의심할 여지 없이 WordPress 코드에서 가장 중요한 부분입니다. 웹 사이트가 어떻게 루프되는지 자세히 살펴보겠습니다.

초보자를 위한 WordPress 페이지 루프

이미 언급했듯이 포스트 루프는 WordPress가 포스트에 대해 가지고 있는 모든 정보를 출력하는 코드입니다. 각 게시물을 통해 백그라운드에서 실행되며 데이터베이스를 하나씩 찾아 검색된 모든 게시물에 대한 정보를 제공할 수 있습니다.

다음은 게시물을 통한 WordPress 루프 작동 방식의 예입니다.

  1. 루프를 시작하면
  2. 발견된 각 게시물이나 페이지에 대해 조치를 취합니다.
  3. 루프를 닫습니다.

이 세 단계는 루프 뒤의 기본 논리를 나타냅니다. 이 시점부터 쿼리를 사용하여 창의력을 발휘하고 찾은 게시물을 필터링할 수 있습니다. 쿼리는 우리가 찾고 있는 것이 무엇인지 루프에 알려줍니다. 이 예에서는 다음과 같습니다.

  1. 우리가 찾고 있는 것이 무엇인지 정의하고,
  2. 루프를 시작하고,
  3. 발견된 각 게시물이나 페이지에 대해 조치를 취합니다.
  4. 루프를 닫습니다.

PHP 코드에 대한 경험이 있다면 데이터베이스 쿼리를 실행하고 모든 단일 데이터베이스 행을 수동으로 입력할 필요 없이 정보를 동적으로 표시하기 위해 루프에서 사용되는 "while" 함수에 익숙할 것입니다.

WordPress while 루프는 동일한 방식으로 작동합니다.

표준 WordPress 루프의 예

다음은 모든 페이지에서 사용할 수 있는 표준 WordPress 루프의 예입니다.

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
// Post display here
<?php endwhile ?>
<?php else : ?>
// Content if there are no posts to show
<?php endif ?>

have_posts()the_post() 함수를 살펴보세요. 첫 번째는 표시할 게시물이 있는지 확인하고, 두 번째는 have_posts() 함수에 도움이 되는 데이터 및 내부 포인트를 설정합니다.

표시할 내용이 없으면 함수는 사용자에게 이를 알리는 메시지를 표시해야 합니다.

찾고 있는 게시물이 있으면 루프는 해당 게시물을 하나씩 표시합니다.

여기에 실제로 게시물을 표시하는 코드 블록이 있습니다. 이는 우리에게 달려 있습니다!

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<div <?php post_class() ?>>
<h2><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2>
<div class='post-excerpt'>
<?php the_excerpt() ?>
</div>
<div class='post-meta'>
<time><?php the_time( 'Ymd' ) ?></time>
<?php if ( has_category() ) : ?>
<span class='post-categories'><?php the_category( ', ' ) ?></span>
<?php endif ?>
</div>
</div>
<?php endwhile ?>
<?php else : ?>
<h2>There are no posts here</h2>
<p>Do you want to go back to the <a href='<?php echo site_url() ?>'>home page?
<?php endif ?>

여기에 표시되는 콘텐츠는 우리가 이미 설명한 쿼리에 의해 결정되며 해당 콘텐츠가 표시되는 방식은 루프에 따라 다릅니다. 이러한 양의 사용자 정의는 훌륭하며 이것이 WordPress를 돋보이게 만드는 요소입니다.

잘 했어! 이제 포스트 루프가 무엇인지 알았습니다!

코드를 사용하여 기본 쿼리 변경

시작하기 전에, 현재 수행 중인 작업을 모르는 경우 기본 쿼리를 변경하면 의도하지 않은 결과를 초래할 수 있다는 점을 경고해야 합니다. 실험할 때 주의하세요!

핵심 기능을 수정하려면 후크를 살펴봐야 합니다. 후크를 사용하면 텍스트 길이를 변경하고, 로그인 화면을 변경하고, 오류 메시지를 다시 작성하고, 사용자 정의 게시물 유형을 변경하는 등의 작업을 수행할 수 있습니다.

add_action( 'pre_get_posts', 'my_exclude_category' );
function my_exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-92' );
}
}

기본 쿼리가 실행되기 전에 pre_get_post 후크를 사용하여 기본 쿼리의 매개변수를 수정합니다. 위 코드는 이전 코드와 동일한 작업을 수행하지만 이번에는 홈 페이지에서 카테고리 92를 제외합니다. 따라서 기본 쿼리가 수정되었습니다.

is_home()is_main_query() 함수를 살펴보세요. 쿼리가 홈 페이지에서만 수정되고 그것이 기본 쿼리인지 확인하기 위해 여기에 있습니다.

WordPress 블로그 루프에 유용할 수 있는 또 다른 코드는 다음과 같습니다.

귀하의 웹 사이트 작성자가 자신의 콘텐츠 중 일부(또는 전체)를 표절했으며 귀하는 해당 작성자의 모든 게시물을 영구적으로 또는 문제가 해결될 때까지 제거하려고 한다고 가정해 보겠습니다.

다음과 같은 코드를 추가하면 됩니다.

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
$query->set( 'author', '-23' );
}

이 조건부 기능을 사용하면 웹사이트와 백엔드 모두에서 작성자의 게시물을 제거할 수 있습니다. WordPress Codex에서 모든 조건부 태그를 찾을 수 있습니다. 마지막 코드는 결국 다음과 같습니다.

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
if( !is_admin() ) {
$query->set( 'author', '-23' );
}
}

WordPress 루프에 대한 FAQ

어쨌든 WordPress 루프는 무엇입니까?

오 이런, 이게 나를 다시 생각하게 만든다! 따라서 핵심적으로 WordPress 루프는 사이트 데이터베이스의 콘텐츠를 표시하는 WP 엔진입니다.

이는 많은 WP 템플릿의 핵심이며 표시할 게시물 이나 페이지와 순서를 시스템에 알려줍니다. WordPress 파티의 DJ로서 손님에게 적합한 음악(또는 게시물)을 고르는 역할을 한다고 생각하세요.

테마 개발에 루프가 왜 그렇게 중요한가요?

아, 테마 전개 , 매번 재미있는 퍼즐! 루프는 WordPress 테마의 백본과 같습니다. 그것이 없다면 당신의 주제는 줄거리가 없는 무성 영화가 될 것입니다.

WP_Query 매개변수를 기반으로 컨텐츠를 가져오고 템플릿 태그를 통해 컨텐츠 표시 내용과 방법을 사용자 정의할 수 있습니다. 특정 게시물에 특별한 스타일이 적용된 테마에 대해 들어보신 적이 있나요? 네, 그게 루프의 마법이에요.

WP_Query는 루프와 어떤 관련이 있나요?

좋아요, 저와 함께 여기로 들어가 보세요. WP_Query 는 콘텐츠를 정의하고 가져오는 클래스입니다. 그런 다음 루프는 WP_Query가 반환하는 결과를 살펴봅니다.

WP_Query를 요리를 준비하는 요리사로 생각하고 루프가 손님에게 요리를 제공한다고 생각하세요. 그리고 맞춤형 포스트 유형 과 분류를 통해 이 셰프는 인상적인 요리를 다양하게 선보일 수 있습니다!

have_posts()와 the_post()의 차이점은 무엇입니까?

고전적인 질문! have_posts()는 쿼리에 반복할 게시물이 남아 있는지 확인합니다. 이는 마치 "그 재생목록에 노래 더 없나요?"라고 묻는 것과 같습니다.

그 동안 the_post()는 현재 게시물을 설정하므로 세부 정보를 표시할 준비가 되었습니다. 다음 트랙에서 재생을 누르는 것과 비슷합니다. 둘 다 루프 댄스에서 매우 중요합니다.

루프에 표시되는 게시물을 어떻게 맞춤설정할 수 있나요?

아, 커스터마이징의 힘이군요! 표시되는 게시물을 변경하려면 WP_Query 매개변수를 조정하거나 pre_get_posts 필터를 사용하세요.

카테고리 루프 , 태그 루프 또는 기타 맞춤 검색어 등 수행할 수 있는 작업이 너무 많습니다. 특정 카테고리의 게시물을 표시하고 싶으십니까? 아니면 사용자 정의 필드를 기준으로 정렬할 수 있나요? 세상은 당신의 굴입니다!

한 페이지에 여러 개의 루프가 있을 수 있나요?

넌 진짜야! 다중 루프는 특히 주요 기사 목록과 최근 게시물이 포함된 사이드바와 같은 다양한 섹션을 원할 때 중요합니다.

각 사용자 정의 WP_Query 후에 wp_reset_postdata() 사용하여 루프를 재설정하면 됩니다. 그리고 템플릿 부분을 사용하면 더욱 체계화됩니다. 너무 무리하지 마세요. 어수선한 파티를 좋아하는 사람은 아무도 없습니다!

루프의 맥락에서 조건부 태그란 무엇입니까?

따라서 조건부 태그는 루프의 문지기입니다. 이를 통해 특정 콘텐츠가 표시되는 위치와 시기를 제어할 수 있습니다.

단일 게시물에만 또는 특정 분류 에만 콘텐츠를 표시하는 데 사용할 수 있습니다. 그들은 손님 목록에 따라 누가 들어올지 결정하는 WP 클럽의 경비원과 같습니다.

루프에 페이지 매김을 어떻게 추가합니까?

아, 페이지 매김, 방문자를 압도하지 않는 예술! 페이지 매김 기능을 사용하면 게시물을 여러 페이지로 나눌 수 있습니다.

끝없는 게시물 목록을 표시하는 대신 사용자에게 잠시 휴식을 취하세요. paginate_links() 와 같은 함수나 고전적인 "다음 및 이전" 링크가 여기에 도움이 됩니다. 왜냐하면 현실적으로는 누구도 영원히 스크롤하고 싶어하지 않기 때문입니다.

기본 쿼리를 수정해야 하는 이유는 무엇입니까?

좋은 것! 때로는 기본 설정만으로는 문제가 해결되지 않습니다. 홈페이지에서 특정 맞춤 게시물 유형 만 표시하거나 특정 카테고리를 제외하고 싶을 수도 있습니다.

pre_get_posts 작업을 사용하면 새 쿼리를 작성하지 않고도 기본 쿼리를 조정할 수 있습니다. 완벽한 사운드를 위해 스테레오의 기본 설정을 조정하는 것과 같습니다.

루프에 문제가 있으면 어떻게 되나요?

아, 거기 있었어! 루프에 문제가 있으면 사이트에 콘텐츠가 표시되지 않거나 더 나쁜 경우 오류가 발생할 수 있습니다. 땜질하기 전에 항상 백업하십시오. WP_Query 매개변수와 템플릿 계층 구조를 확인하세요.

그리고 다른 모든 방법이 실패할 경우 WordPress Codex 및 커뮤니티 포럼은 문제 해결을 위한 금광입니다. 모든 개발자는 적어도 한 번은 결함이 있는 루프에 직면한다는 것을 기억하십시오. 당신은 이것을 얻었습니다!

WordPress 루프에 대한 생각 끝내기

WordPress 루프를 사용하는 것은 게시물, 페이지 또는 웹사이트를 사용자 정의하는 좋은 방법입니다. 루프를 사용하려면 WordPress 작동 방식과 코드 논리에 대한 기본적인 이해가 필요합니다.

빠른 테스트를 원하지 않는다면 query_posts() 함수를 사용하지 않는 것이 좋습니다. 원래 쿼리를 수정해야 하는 경우 다양한 후크를 사용할 수 있습니다. WordPress 루프 코드를 변경할 때는 항상 주의하세요.

이 기사가 귀하의 WordPress 루프 숙달을 위한 좋은 첫 단계가 되기를 바랍니다!

WordPress 루프에 대한 이 기사가 마음에 드셨다면 다음 내용도 읽어 보시기 바랍니다.

  • WordPress의 504 오류: 해결 방법
  • 성공적인 WordPress 프리미엄 플러그인 또는 테마 제작을 위한 12가지 팁
  • WordPress에서 브라우저 캐싱을 활용하는 방법은 무엇입니까? 따라야 할 단계