2015年9月30日星期三

wordpress不同内容页(single页)的使用方法

beauty

如果让自己做网站时,网站版面的多样化。实现文章样式不同,就需修改single.php模版。

方法1:   将下面的代码添加到当前主题的 functions.php 文件:

/**
* 不同分类使用不同的文章模板
* From http://www.wpdaxue.com/custom-single-post-template.html
*/
//定义模板文件所在目录为 single 文件夹
define(SINGLE_PATH, TEMPLATEPATH . '/single');
//自动选择模板的函数
function wpdaxue_single_template($single) {
global $wp_query, $post;
//通过分类别名或ID选择模板文件
foreach((array)get_the_category() as $cat) :
if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';
elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
endforeach;
}
//通过 single_template 钩子挂载函数
add_filter('single_template', 'wpdaxue_single_template');

方法2:

首先,用下面的代码替换single.php的全部内容:
<?php
if ( in_category(‘分类别名’) ) {
include(TEMPLATEPATH . ‘/single_a.php’);
}
else {
include(TEMPLATEPATH . ‘/single_b.php’);
}
?>
或者如下代码:
<?php
if ( in_category(array( 2,3 )) ) {
get_template_part('single001' );
} elseif ( in_category( 7 )) {
get_template_part('single002' );
} else {
get_template_part('single003' );
}
?>

其中,“分类别名”替换为显示特殊样式的分类别名,分类ID也行。前段是指定的分类调用的模版,后段是其它分类调用的通用模版。

然后,在主题目录分别新建single_a和single_b二个文章,分别设置不同的文章版面,这样WP程序就会自动识别不同分类下调用设置的文章模板了。

 

没有评论:

发表评论