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

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

藏色散人
藏色散人앞으로
2019-11-13 11:57:053299검색

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으로 문의하시기 바랍니다. 삭제