Heim  >  Artikel  >  CMS-Tutorial  >  So fügen Sie WordPress-Kategorien die Option „Andere Vorlage auswählen“ hinzu

So fügen Sie WordPress-Kategorien die Option „Andere Vorlage auswählen“ hinzu

藏色散人
藏色散人nach vorne
2019-11-13 11:57:053225Durchsuche

Die folgende Spalte des WordPress-Tutorials zeigt Ihnen, wie Sie verschiedene Vorlagenoptionen zu WordPress-Kategorien hinzufügen. Ich hoffe, dass es für Freunde in Not hilfreich ist!

So fügen Sie WordPress-Kategorien die Option „Andere Vorlage auswählen“ hinzu

Manchmal möchten wir, dass verschiedene Kategorien basierend auf dem Inhalt der Kategorie in unterschiedlichen Stilen angezeigt werden. Die übliche Methode besteht darin, mehrere weitere Kategorievorlagen mit unterschiedlichen Layoutstilen im aktuellen Theme-Stammverzeichnis zu erstellen, z. B. Kategorie-1.php, Kategorie-2.php, Kategorie-3.php ..., die folgenden Nummern gelten für The Geben Sie die entsprechende Kategorie-ID-Nummer ein oder verwenden Sie die Funktion is_category(), um eine Beurteilung hinzuzufügen, was etwas umständlich ist. Es gibt eine einfachere Möglichkeit: Installieren Sie das Plugin „Benutzerdefinierte Kategorievorlagen“.

Nachdem das Plug-in aktiviert wurde, wird beim Bearbeiten einer Kategorie eine Option zur Auswahl einer Vorlage hinzugefügt.

Erstellen Sie mehrere Seitenvorlagen mit unterschiedlichen Layoutstilen. Die Kopfzeile der Vorlage muss ein ähnliches Logo haben:

<?php
/*
Template Name: 模板A
*/

Wählen Sie dann beim Bearbeiten oder Hinzufügen von Kategorien einfach spezielle Vorlagen für verschiedene Kategorien aus.

Der Effekt ist wie folgt:

So fügen Sie WordPress-Kategorien die Option „Andere Vorlage auswählen“ hinzu

Das Folgende ist der Code, der aus dem Plug-in „Benutzerdefinierte Kategorievorlagen“ extrahiert wurde kann direkt zum aktuellen Theme hinzugefügt werden. Die Funktionsvorlage finden Sie in Functions.php.

Codeversion:

// 分类选择模板
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();

Das obige ist der detaillierte Inhalt vonSo fügen Sie WordPress-Kategorien die Option „Andere Vorlage auswählen“ hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:zmingcx.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen