热门专栏: WordPress 专栏

我要进行一个独特的挑战.我需要为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。这样差不多了,如果有还不明白的朋友可以提出来,我再补充。唉。这个原作者有点烦,口水话一大堆。

留言列表

Comments List
  1. 2008年05月25日 Andregao 说:

    有没有可能在这个基础上,实现首页上不同分类的日志显示不同的样式?

  2. 2008年05月25日 paran 说:

    完全可以.

  3. 2008年07月25日 Steve Luo 说:

    今天在修改一个主题的时候发现没有single.php。。。请问如果没有single.php那么日志页面的布局是根据什么读取的呢?

  4. 2008年07月25日 paran 说:

    @Steve Luo
    index.php

  5. 2008年07月25日 Steve Luo 说:

    好的谢谢,我测试了几下也发觉了,谢谢啦~很喜欢你的站呵呵,资源多多

  6. 2008年08月21日 Snow 说:

    从这开始就不明白了。。。

添加回复

Respond This Post

看过这篇文章的读者,还看过:

Also Read

Entries (RSS) and Comments (RSS)
Powered by Wordpress Designed by 5android Vaild W3C CSS & XHTML