> CMS 튜토리얼 > Word누르다 > WordPress 카테고리에 다른 템플릿 옵션 선택을 추가하는 방법

WordPress 카테고리에 다른 템플릿 옵션 선택을 추가하는 방법

藏色散人
풀어 주다: 2019-11-13 11:57:05
앞으로
3289명이 탐색했습니다.

WordPress Tutorial의 다음 칼럼에서는 WordPress 카테고리에 다양한 템플릿 옵션을 추가하는 방법을 보여줍니다. 이 내용이 필요한 친구들에게 도움이 되기를 바랍니다. !

WordPress 카테고리에 다른 템플릿 옵션 선택을 추가하는 방법

때로는 카테고리의 콘텐츠에 따라 다양한 카테고리가 다른 스타일로 표시되기를 원할 때가 있습니다. 일반적인 방법은 현재 테마 루트 디렉토리에 카테고리-1.php, 카테고리-2.php, 카테고리-3.php...와 같이 다양한 레이아웃 스타일을 사용하여 카테고리 템플릿을 여러 개 더 만드는 것입니다. 다음 숫자는 적절한 카테고리 ID 번호를 지정하거나 is_category() 함수를 사용하여 판단을 추가하는 것은 다소 번거롭습니다. 더 쉬운 방법은 사용자 정의 카테고리 템플릿 플러그인을 설치하는 것입니다.

플러그인 활성화 후 카테고리 편집 시 템플릿을 선택할 수 있는 옵션이 추가됩니다.

다양한 레이아웃 스타일로 여러 페이지 템플릿을 만듭니다. 템플릿 헤더에 유사한 로고가 있어야 합니다.

<?php
/*
Template Name: 模板A
*/
로그인 후 복사

그런 다음 카테고리를 편집하거나 추가할 때 다른 카테고리 전용을 선택합니다. 주형.

효과는 다음과 같습니다:

WordPress 카테고리에 다른 템플릿 옵션 선택을 추가하는 방법

다음은 사용자 정의 카테고리에서 추출됩니다. 템플릿 플러그인 코드는 현재 테마 함수 템플릿 function.php에 직접 추가될 수 있습니다.

코드 버전:

// 分类选择模板
class Select_Category_Template{
	public function __construct() {
		add_filter( &#39;category_template&#39;, array($this,&#39;get_custom_category_template&#39; ));
		add_action ( &#39;edit_category_form_fields&#39;, array($this,&#39;category_template_meta_box&#39;));
		add_action( &#39;category_add_form_fields&#39;, array( &$this, &#39;category_template_meta_box&#39;) );
		add_action( &#39;created_category&#39;, array( &$this, &#39;save_category_template&#39; ));
		add_action ( &#39;edited_category&#39;, array($this,&#39;save_category_template&#39;));
		do_action(&#39;Custom_Category_Template_constructor&#39;,$this);
	}
 
	// 添加表单到分类编辑页面
	public function category_template_meta_box( $tag ) {
		$t_id = $tag->term_id;
		$cat_meta = get_option( "category_templates");
		$template = isset($cat_meta[$t_id]) ? $cat_meta[$t_id] : false;
		?>
		<tr class="form-field">
			<th scope="row" valign="top"><label for="cat_Image_url"><?php _e(&#39;Category Template&#39;); ?></label></th>
			<td>
				<select name="cat_template" id="cat_template">
					<option value=&#39;default&#39;><?php _e(&#39;Default Template&#39;); ?></option>
					<?php page_template_dropdown($template); ?>
				</select>
				<br />
				<span class="description"><?php _e(&#39;为此分类选择一个模板&#39;); ?></span>
			</td>
		</tr>
		<?php
		do_action(&#39;Custom_Category_Template_ADD_FIELDS&#39;,$tag);
	}
 
	// 保存表单
	public function save_category_template( $term_id ) {
		if ( isset( $_POST[&#39;cat_template&#39;] )) {
			$cat_meta = get_option( "category_templates");
			$cat_meta[$term_id] = $_POST[&#39;cat_template&#39;];
			update_option( "category_templates", $cat_meta );
			do_action(&#39;Custom_Category_Template_SAVE_FIELDS&#39;,$term_id);
		}
	}
 
	// 处理选择的分类模板
	function get_custom_category_template( $category_template ) {
		$cat_ID = absint( get_query_var(&#39;cat&#39;) );
		$cat_meta = get_option(&#39;category_templates&#39;);
		if (isset($cat_meta[$cat_ID]) && $cat_meta[$cat_ID] != &#39;default&#39; ){
			$temp = locate_template($cat_meta[$cat_ID]);
			if (!empty($temp))
				return apply_filters("Custom_Category_Template_found",$temp);
		}
		return $category_template;
	}
}
 
$cat_template = new Select_Category_Template();
로그인 후 복사

위 내용은 WordPress 카테고리에 다른 템플릿 옵션 선택을 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:zmingcx.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿