WordPress에서 조건부 태그 사용

게시 됨: 2012-12-27

특정 조건이 충족되고 예를 반환하는 것에 따라 테마의 다양한 후크 위치에서 사용자 정의 기능을 실행하는 방법을 살펴보겠습니다.

Genesis와 같은 프리미엄 테마 프레임워크를 사용하는 경우 사용자 가이드에 액세스할 수 있습니다.

사용자 가이드에는 일반적으로 사용자 정의 기능이 포함된 코드 조각이 포함되어 있습니다.

참고: 프리미엄 테마 프레임워크를 사용하지 않는 경우 사용자 정의 함수를 직접 생성하거나 테마와 작동하는 코드 조각을 찾아야 합니다.

이러한 사용자 정의 기능은 테마 작업 후크를 사용하여 특정 테마 위치에서 실행할 수 있습니다.

테마 기능을 사용자 정의하기 위해 코드 스니펫을 자식 테마 functions.php 파일에 붙여넣기만 하면 됩니다.

각 테마 프레임워크는 다른 후크를 사용하지만 거의 동일한 작업을 수행하며 다음과 같이 다른 이름이 지정됩니다.

 thesis_after_post genesis_after_post woo_post_after

이 3가지 예는 모두 게시물이 완료된 후 실행되며, 여기에서 소셜 공유/팔로우 버튼이 있는 위젯 영역, 배너 또는 이메일 수신 동의 상자를 추가할 수 있습니다.

그러나 사용자 정의 함수가 다음과 같은 특정 조건에 따라 특정 후크 위치에서만 실행되도록 하려면 어떻게 해야 할까요? 예를 들어:

  • 단일 게시물에만: is_single()
  • 특정 카테고리의 게시물에만 해당: is_category()
  • 아카이브 페이지에서만: is_archive()
  • 홈페이지에서만: is_home()

테마 후크 위치에서 실행되는 사용자 정의 함수에 조건부 태그를 추가하면 조건이 yes를 반환하는 경우에만 함수를 실행할 수 있습니다.

참고: 라이브 사이트에 코드를 추가하기 전에 로컬 설정에서 사용자 정의 기능에 대한 코드 조각으로 이러한 태그를 테스트할 수 있습니다.

사용자 정의 함수를 사용하는 데 익숙해지고 테마 작업 후크가 작동하는 위치와 방법을 이해하면 일부 개발자가 호출하는 조건부 태그 또는 조건문을 사용하여 한 단계 더 나아갈 수 있습니다.

그렇다면 조건문은 어떻게 사용합니까?

조건부 태그 예

다음은 WordPress 디자이너와 테마 및 플러그인 개발자가 사용하는 몇 가지 일반적인 조건부 태그입니다.

 is_home() is_category() is_single() is_page()

먼저 여러 명령문을 기반으로 조건부 태그를 사용하는 방법을 살펴보겠습니다.

is_single 및 in_category

 if (is_single() && in_category('134'))
 if (is_single() && in_category('web-design'))

이 두 코드 조각은 정확히 동일한 작업을 수행하며 2개의 조건부 태그를 포함합니다.

첫 번째는 134의 카테고리 ID를 사용하고 두 번째는 카테고리 슬러그 'web-design'을 사용합니다.

이 코드에 포함하는 모든 기능은 게시물 ID가 134이거나 페이지 슬러그 '웹 디자인'이 포함된 카테고리의 단일 게시물에서만 실행됩니다. 이것은 분명히 웹 디자인 카테고리입니다.

매개변수

위의 예에서 볼 수 있듯이 다음과 같은 조건부 태그와 함께 다양한 매개변수를 사용할 수 있습니다.

  1. 게시물 ID
  2. 게시물 제목
  3. 포스트 슬러그

is_home() 태그와 같은 일부 조건부 태그는 매개변수가 실제로 필요하지 않기 때문에 매개변수를 제외하지 않습니다.

is_page

 if (is_page('4289'))
 if (is_page('contact'))

이 두 조건부 태그도 정확히 동일한 작업을 수행합니다.

첫 번째는 4289의 페이지 게시물 ID를 사용하고 두 번째는 페이지 이름과 슬러그 '연락처'를 사용합니다.

이 태그에 포함된 기능은 연락처 페이지에서만 실행됩니다.

홈페이지 조건부 태그

is_home 태그를 사용하는 가장 일반적인 용도는 홈 페이지에만 무언가를 표시하거나 기능에서 홈 페이지를 제외하는 것입니다.

is_home

 if (!is_home()

이 코드에는 ! home_page 조건부 태그 앞에 있으므로 함수에서 홈페이지를 제외합니다.

 if (is_home()

이 코드는 홈페이지에만 적용되는 조건을 생성합니다.

작업 예

코드 편집기를 사용하여 다음 코드를 복사하여 자식 테마 함수 파일에 붙여넣으면 단일 게시물에서만 헤더 뒤에 텍스트가 인쇄됩니다.

 add_action( 'genesis_entry_footer', 'add_content_after_single_posts' ); function add_content_after_single_posts() { if ( is_singular('post') ) { echo 'Content Added After Single Post Entry Footer'; } }

위의 코드는 is_singular('post') 조건부 태그와 함께 genesis_entry_footer 후크 위치를 사용하고 단일 게시물에서만 콘텐츠 뒤에 텍스트를 인쇄합니다. 이것은 테마 작업 후크와 함께 사용자 정의 함수에서 조건부 태그를 사용하는 방법을 보여주는 고전적인 예입니다.

배열이 있는 조건부 태그

조건문에 배열을 추가할 수도 있습니다.

is_page(배열

 if (is_page(array('contact','37290'))

쉼표로 구분된 이 배열 내에 페이지를 포함하기만 하면 이 배열에 더 많은 페이지를 추가할 수 있습니다.

이 기능은 연락처 페이지와 게시물 ID가 37290인 페이지에서만 실행됩니다.

텍스트/HTML 출력

단순히 텍스트나 HTML을 표시하려는 경우 테마 작업 후크에 조건문을 추가할 수 있습니다. 이를 수행하는 가장 쉬운 방법은 후크 플러그인을 사용하여 HTML에 조건부 태그를 붙여넣는 것입니다.

 if ( ! is_home()) { echo'Your Text Here'; }

action hook이 있는 일반적인 기능을 가지고 조건부 태그를 추가해 봅시다.

창세기의 조건부 태그

StudioPress 테마에서 사용할 Genesis 테마 코드 조각 중 하나를 쉽게 추가하고 코드에 조건부 태그를 포함할 수 있습니다.

 /** Add custom body class to video category */ add_filter( 'body_class', 'add_body_class' ); function add_body_class( $classes ) { if ( is_category( 'video-tutorials' ) ) $classes[] = 'custom-class'; return $classes; }

이 코드를 통해 사용자는 사용자 정의 클래스를 사용하여 비디오 카테고리 페이지의 스타일을 지정할 수 있습니다.

사용된 매개변수는 비디오 자습서 슬러그이지만 조건부 태그에서 post.id 또는 제목을 사용할 수 있습니다.

논문의 조건부 태그

DIY 테마 사용자 가이드에서 사용자 정의 함수를 가져와 조건문을 추가할 수 있습니다.

 function hide_nav_menu() { if(is_page ( 'contact-page' ) ) remove_action ( 'thesis_hook_before_header', 'thesis_nav_menu' ); } add_action ( 'thesis_hook_before_html','hide_nav_menu' );

이렇게 하면 연락처 페이지에서만 탐색 메뉴가 숨겨집니다.

페이지 슬러그, 게시물 ID 또는 페이지 이름을 포함하여 연락처 페이지에 대해 다른 매개변수를 사용할 수 있습니다.

코드를 어디에 둘 것인가?

프리미엄 테마 프레임워크를 사용하는 경우 코드를 자식 테마 functions.php 파일에 붙여넣을 수 있습니다.

이러한 프레임워크는 모두 조건부 태그를 기반으로 코드를 실행하려는 후크 위치에 코드를 붙여넣을 수 있는 후크 플러그인 또는 관리자를 제공합니다.

  • 우후크 매니저
  • 창세기 간단한 후크
  • 논문, Headway 및 WordPress 후크

분명히 후크 관리자를 사용하는 경우 코드에 작업 후크를 포함할 필요가 없습니다.

또 다른 옵션은 조건에 따라 기능을 실행하려는 위치의 테마 템플릿 파일에 조건부 태그를 직접 붙여넣는 것입니다. 테마를 업데이트하면 코드가 손실되므로 모범 사례가 아닙니다.

항상 가장 좋은 방법은 하위 테마를 만들고 거기에서 템플릿 파일을 수정하는 것입니다. 더 나은 방법은 테마 개발자가 이미 만든 사용자 지정 함수를 사용하고 테스트에서 작동하는 것으로 입증되면 조건부 태그와 함께 코드를 자식 테마 함수 파일에 붙여넣는 것입니다.

WordPress 조건부 태그 및 예

WordPress Codex에서 예제와 함께 모든 WordPress 조건부 태그 목록을 찾을 수 있습니다.

테마별 조건부 태그

일부 프리미엄 테마는 테마 프레임워크에 고유한 자체 조건부 태그도 사용합니다.

Woo Commerce는 다음 중 하나입니다. 예:

 is_woocommerce() - Returns true if on a page which uses WooCommerce templates is_product_category() - Returns true when viewing a product category archive is_checkout() - Returns true on the checkout page.

Woo Commerce에서 조건부 태그를 사용하는 방법에 대해 자세히 알아보세요.

결론

개발자가 테스트한 광범위한 코드 조각을 제공하는 테마를 사용하는 것은 큰 보너스입니다. 이렇게 하면 WordPress에서 제공하는 조건부 태그를 선택하고 코드 조각에 추가하여 원하는 방식으로 테마를 사용자 지정할 수 있습니다.