wordpress怎么实现不同分类使用不同的文章内页模板

制开发主题的过程中遇到一个需求就是需要不同分类下的文章显示出不同的效果,如果通过single.php来做判断可能显得文件代码很繁琐,所以这里可以根据分类来选择显示single的文件。将以下代码加到主题的functions.php

  1. //定义模板文件所在目录为 single 文件夹
  2.  define(SINGLE_PATH, TEMPLATEPATH . '/single');
  3.  //自动选择模板的函数
  4.  function mobantu_single_template($single) {
  5.  global $wp_query, $post;
  6.  //通过分类别名或ID选择模板文件
  7.  foreach((array)get_the_category() as $cat) :
  8.  if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
  9.  return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';
  10.  elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
  11.  return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
  12.  endforeach;
  13.  }
  14.  //通过 single_template 钩子挂载函数
  15.  add_filter('single_template', 'mobantu_single_template');
喜欢