The following column WordPress Tutorial will show you how to add different template options to WordPress categories. I hope it will be helpful to friends in need!
We sometimes want different categories to be displayed in different styles based on the content of the category. The usual method is to create several more category templates with different layout styles in the current theme root directory, such as category-1.php, category-2.php, category-3.php..., the following numbers are for The appropriate category ID number, or use the is_category() function to add a judgment, which is a bit cumbersome. There is an easier way, install the Custom Category Templates plugin.
After enabling the plug-in, an option to select a template will be added when editing a category.
Create several page templates with different layout styles. The header of the template must have a similar logo:
<?php /* Template Name: 模板A */
Then when editing or adding categories, just select dedicated templates for different categories. .
The effect is as shown:
The following is the code extracted from the Custom Category Templates plug-in, which can be added directly to the current theme The function template can be found in functions.php.
Code version:
// 分类选择模板 class Select_Category_Template{ public function __construct() { add_filter( 'category_template', array($this,'get_custom_category_template' )); add_action ( 'edit_category_form_fields', array($this,'category_template_meta_box')); add_action( 'category_add_form_fields', array( &$this, 'category_template_meta_box') ); add_action( 'created_category', array( &$this, 'save_category_template' )); add_action ( 'edited_category', array($this,'save_category_template')); do_action('Custom_Category_Template_constructor',$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('Category Template'); ?></label></th> <td> <select name="cat_template" id="cat_template"> <option value='default'><?php _e('Default Template'); ?></option> <?php page_template_dropdown($template); ?> </select> <br /> <span class="description"><?php _e('为此分类选择一个模板'); ?></span> </td> </tr> <?php do_action('Custom_Category_Template_ADD_FIELDS',$tag); } // 保存表单 public function save_category_template( $term_id ) { if ( isset( $_POST['cat_template'] )) { $cat_meta = get_option( "category_templates"); $cat_meta[$term_id] = $_POST['cat_template']; update_option( "category_templates", $cat_meta ); do_action('Custom_Category_Template_SAVE_FIELDS',$term_id); } } // 处理选择的分类模板 function get_custom_category_template( $category_template ) { $cat_ID = absint( get_query_var('cat') ); $cat_meta = get_option('category_templates'); if (isset($cat_meta[$cat_ID]) && $cat_meta[$cat_ID] != 'default' ){ $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();
The above is the detailed content of How to Add Choose Different Template Option to WordPress Categories. For more information, please follow other related articles on the PHP Chinese website!