>백엔드 개발 >PHP 튜토리얼 >WordPress_php 스킬에서 템플릿 로딩의 get_template_part 기능에 대한 심층 분석

WordPress_php 스킬에서 템플릿 로딩의 get_template_part 기능에 대한 심층 분석

WBOY
WBOY원래의
2016-05-16 20:00:001272검색

최근 트웬티일레븐의 공식 테마를 인터넷에서 찾아보기 힘든 내용이 있어서 블로그에 공유와 메모로 기록해 두었습니다. 워드프레스 3.0부터 기사 발표 형태에 대한 선택의 폭이 더욱 다양해지는 새로운 기능이 되어야 합니다.

트웬티일레븐의 예시는 다음과 같습니다.

트웬티일레븐 index.php 파일
행: 21

<&#63;php if ( have_posts() ) : &#63;>
 <&#63;php twentyeleven_content_nav( 'nav-above' ); &#63;>
 <&#63;php /* Start the Loop 在循环中使用以调用不同类型的文章 */ &#63;>
 <&#63;php while ( have_posts() ) : the_post(); &#63;>
 <&#63;php get_template_part( 'content', get_post_format() ); &#63;>
 <&#63;php endwhile; &#63;>
............................
<&#63;php endif; &#63;>

설명:
지정된 템플릿을 다른 템플릿으로 로드합니다(머리글, 사이드바, 바닥글 포함과 다름).
테마에서 하위 템플릿을 사용하여 코드 조각을 쉽게 재사용할 수 있습니다

은 지정된 템플릿 파일을 템플릿에 포함하는 데 사용됩니다. {slug}-{name}.php 파일을 포함하려면 매개변수 slug 및 name만 지정하면 됩니다. 파일이 없으면 {name }.php 파일이 없습니다

사용방법:

<&#63;php get_template_part( $slug, $name ) &#63;>

매개변수:

  • $slug (필수) 범용 템플릿 이름
  • $name(선택 사항) 지정된 템플릿 이름

예:

하위 테마에서 loop.php 사용

wp-content/themes 테마 폴더 아래의 상위 테마가 201 하위 테마 20tenchild라고 가정하고 다음 코드를 입력하세요.

<&#63;php get_template_part( 'loop', 'index' ); &#63;>

php의 require() 함수는 다음 우선순위에 따라 파일을 포함합니다

1. wp-content/themes/twentytenchild/loop-index.php
2. wp-content/themes/twentytenchild/loop.php
3. wp-content/themes/twentyten/loop-index.php
4. wp-content/themes/twentyten/loop.php

내비게이션(이 예는 형편없지만 이를 사용하는 또 다른 방법입니다)
공통 nav.php 파일을 사용하여 테마에 탐색 모음을 추가합니다.

<&#63;php get_template_part( 'nav' );      // Navigation bar (nav.php) &#63;>
<&#63;php get_template_part( 'nav', '2' );   // Navigation bar #2 (nav-2.php) &#63;>
<&#63;php get_template_part( 'nav', 'single' ); // Navigation bar to use in single pages (nav-single.php) &#63;>

get_template_part() Hook에 대한 자세한 설명
get_template_part() 함수는 공식 테마(Twenty Eleven)에서 널리 사용되기 때문에 현재로서는 이 함수가 비교적 대중적인 함수라고 생각해야 합니다. 이 함수의 구체적인 사용법에 대해서는 이전에 글을 쓴 적이 있습니다. 여기에서 자세히 설명하는 것은 편리하지 않습니다. 이 기사에서는 $tag 값이 혼동되는 WP 후크의 일부 함수가 항상 있기 때문에 이 함수의 add_action에 있는 후크 $tag 값에 대해 주로 설명합니다.

일반 후크와의 차이점
일반 후크의 $tag는 고정된 값이지만 get_template_part()는 실제로 가변 값입니다. wp가 간단한 기능을 구현하는 데 얼마나 많은 어려움을 겪는지는 이야기하지 않지만 이 설정은 다양한 기능을 제공합니다. 편리함.
이 원칙을 구현하기 위한 소스 코드는 WordPress 소스 프로그램에서 가져온 다음과 같습니다.

 function get_template_part( $slug, $name = null ) {
//$tag = "get_template_part_{$slug}" 
//也就是,get_template_part_+你当时设置的$slug值
 do_action( "get_template_part_{$slug}", $slug, $name );
 $templates = array();
 if ( isset($name) )
  $templates[] = "{$slug}-{$name}.php";
  $templates[] = "{$slug}.php";
  locate_template($templates, true, false);
}


위에서 말씀드린 것처럼 제가 전혀 이해하지 못할 수도 있습니다. 몇 가지 예를 들어주세요

//复习一下get_template_part($slug, $name)的用法,
//如果你在主题里这样
get_template_part( 'index' , 'photo');
//那么 WP 会去找主题根目录下 index-photo.php 文件
 
//那么我们想挂一个函数的话就得像如下
function addFunction ($slug, $name){
echo $slug;
}
add_action("get_template_part_index","addFunction",10,2);

get_template_part() 함수 상세 설명 메모

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.