Maison > Tutoriel CMS > WordPresse > le corps du texte

Comment ajouter une option de modèle différente aux catégories WordPress

藏色散人
Libérer: 2019-11-13 11:57:05
avant
3241 Les gens l'ont consulté

La colonne suivante du Tutoriel WordPress vous montrera comment ajouter différentes options de modèles aux catégories WordPress. J'espère que cela sera utile aux amis dans le besoin !

Comment ajouter une option de modèle différente aux catégories WordPress

Nous souhaitons parfois que différentes catégories soient affichées dans différents styles en fonction du contenu de la catégorie. La méthode habituelle consiste à créer plusieurs modèles de catégories supplémentaires avec différents styles de mise en page dans le répertoire racine du thème actuel, tels que catégorie-1.php, catégorie-2.php, catégorie-3.php..., les numéros suivants sont pour Le numéro d'identification de catégorie approprié, ou utilisez la fonction is_category() pour ajouter un jugement, ce qui est un peu fastidieux. Il existe un moyen plus simple, installez le plugin Custom Category Templates.

Après avoir activé le plug-in, une option permettant de sélectionner un modèle sera ajoutée lors de la modification d'une catégorie.

Créez plusieurs modèles de pages avec des styles de mise en page différents. L'en-tête du modèle doit avoir un logo similaire :

<?php
/*
Template Name: 模板A
*/
Copier après la connexion

Ensuite, lors de la modification ou de l'ajout de catégories, sélectionnez simplement des modèles dédiés aux différentes catégories.

L'effet est le suivant :

Comment ajouter une option de modèle différente aux catégories WordPress

Ce qui suit est le code extrait du plug-in Custom Category Templates, qui peut être ajouté directement au thème actuel. Le modèle de fonction se trouve dans Functions.php.

Version du code :

// 分类选择模板
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();
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:zmingcx.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal