WordPress教程

无插件代码实现WordPress分类目录模板选择功能

阿里云

WordPress 分类目录是一种文章分类的集合,在一些中大型网站中,不同的分类会有不同的版面样式,如果版面类型不多的情况下,可以使用代码进行判断,实现不同分类调用不同的分类目录模板。

但是如果一个网站中的分类目录模板比较多,使用代码判断就比较麻烦了。常用的方法就是给分类目录添加分类目录模板选择功能。这样在网站开发时,就可以自由的选择想显示的模板了。如下图

怎么给 WordPress 分类目录添加模板选择功能呢?方法很简单,只需要将以下的函数代码粘贴到自己使用的模板的模板函数里即可。

也想出现在这里?联系我们
创客主机
  1. /*分类模板选择*/
  2. class Select_Category_Template{
  3. public function __construct() {
  4. add_filter( 'category_template', array($this,'get_custom_category_template' ));
  5. add_action ( 'edit_category_form_fields', array($this,'category_template_meta_box'));
  6. add_action( 'category_add_form_fields', array( &$this, 'category_template_meta_box') );
  7. add_action( 'created_category', array( &$this, 'save_category_template' ));
  8. add_action ( 'edited_category', array($this,'save_category_template'));
  9. do_action('Custom_Category_Template_constructor',$this);
  10. }
  11.  
  12. // 添加表单到分类编辑页面
  13. public function category_template_meta_box( $tag ) {
  14. $t_id = $tag->term_id;
  15. $cat_meta = get_option( "category_templates");
  16. $template = isset($cat_meta[$t_id]) ? $cat_meta[$t_id] : false;
  17. ?>
  18. <tr class="form-field">
  19. <th scope="row" valign="top"><label for="cat_Image_url"><?php _e('Category Template'); ?></label></th>
  20. <td>
  21. <select name="cat_template" id="cat_template">
  22. <option value='default'><?php _e('Default Template'); ?></option>
  23. <?php page_template_dropdown($template); ?>
  24. </select>
  25. <br />
  26. <span class="description"><?php _e('为此分类选择一个模板'); ?></span>
  27. </td>
  28. </tr>
  29. <?php
  30. do_action('Custom_Category_Template_ADD_FIELDS',$tag);
  31. }
  32.  
  33. // 保存表单
  34. public function save_category_template( $term_id ) {
  35. if ( isset( $_POST['cat_template'] )) {
  36. $cat_meta = get_option( "category_templates");
  37. $cat_meta[$term_id] = $_POST['cat_template'];
  38. update_option( "category_templates", $cat_meta );
  39. do_action('Custom_Category_Template_SAVE_FIELDS',$term_id);
  40. }
  41. }
  42.  
  43. // 处理选择的分类模板
  44. function get_custom_category_template( $category_template ) {
  45. $cat_ID = absint( get_query_var('cat') );
  46. $cat_meta = get_option('category_templates');
  47. if (isset($cat_meta[$cat_ID]) && $cat_meta[$cat_ID] != 'default' ){
  48. $temp = locate_template($cat_meta[$cat_ID]);
  49. if (!empty($temp))
  50. return apply_filters("Custom_Category_Template_found",$temp);
  51. }
  52. return $category_template;
  53. }
  54. }
  55.  
  56. $cat_template = new Select_Category_Template();
  57. /*分类模板选择*/

通过这个代码就可以轻松给 WordPress 后台分类目录添加模板选择功能了。

无插件代码实现 WordPress 分类目录模板选择功能

已有 228 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!