2011年8月31日星期三

精通WordPress主题-3: 为不同的分类日志设置不同的样式

我要进行一个独特的挑战.我需要为wordpress博客中的一个分类下面的博客文章页面指定不同的样式表. 有很多种方法可以实现,但是我想寻找最快速和最简单的途径。 我选择使用Wordpress的一个条件标签来检测某分类下面的日志,然后改变日志页面的header头部声明来为特定的分类自定义样式表。

在我的wordpress主题文件里面只有一个Header文件, 并且条件标签说 “如果这是一个单页, 显示单页并调用单页的样式表”, 我需要它像这样说:

如果这是 X 分类下面的单页
为这些单页显示特定的样式

默认情况下, WordPress Template Hierarchy/模板层次 状态是当你点击一个单篇日志页 面时,Wordpress将自动醒找single.php模板文件,如果没有找到,则查找并傅index.php文件。

我将要通过对
single.php

添加一个条件标签让它说 “如果这个单页是属于X 分类, 显示不同的风格”

If in_category 条件标签

首先,复制两个single.php文件分别取名为

single1.php
和single.2.php

.

然后,把原先的single.php文件里面的内容全部删除,并用下面的代码进行替换:

<?php
$post = $wp_query->post;
if ( in_category('9') ) {
include(TEMPLATEPATH . '/single2.php');
} else {
include(TEMPLATEPATH . '/single1.php');
}
?>
简单的说, 这串 PHP 代码将做出一个质疑查询:

检查日志. 如果日志是属于分类 ID 9下面,

显示single2.php

. 如果不是,则显示

single1.php

.

in_category()

, 我们设置category ID为 9, 该分类下面显示我博客里面所有关于网页设计的文章. 当用户点击这个分类下面的文章时, 自定义的样式表将使用到这些文章里面。

这仅仅是个简单的示例,你还可以使用更多的条件语句来为不同的类别指定不同的样式和内容,下面是一个示例:

<?php
$post = $wp_query->post;
if ( in_category('9') ) {
include(TEMPLATEPATH . '/single9.php');
elseif ( in_category('12') ) {
include(TEMPLATEPATH . '/single12.php');
elseif ( in_category('42') {
include(TEMPLATEPATH . '/single42.php');
} else {
include(TEMPLATEPATH . '/single1.php');
} }
?>

在我的两个复制“single”的模板文件里面, 我都在顶部放置了提醒作用的注释代码,就像下面这样:

<!-- single 2 - for CSS Web Page Articles -->

因为我并不想都改变这两个模板文件, 而仅仅是添加额外的样式表到第二个也就是single2.php文件, 于是我创建两个header模板文件,

就像复制single.php那样

, 然后在第二个header文件的顶部添加上外部样式表的链接,像这样:

<style type="text/css" media="screen">
@import URL('/wp-content/themes/mytheme/style.css');
@import URL('/wp-content/themes/mytheme/cssstyles.css');
</style >

接着,就是要在第二个single2.php里面调用

header2.php

:

<?php
/* Don’t remove this line. */
require('./wp-blog-header.php');
include(get_template_directory() . '/header2.php'
?>

原文: Creating Multiple Single Posts for Different Categories

翻译: 帕兰映像

OK。这样差不多了,如果有还不明白的朋友可以提出来,我再补充。唉。这个原作者有点烦,口水话一大堆。

来源于 精通WordPress主题-3: 为不同的分类日志设置不同的样式 | 帕兰映像

没有评论:

发表评论