本文是WordPress企业建站系列教程的第四篇文章,需要说明的是,如果想你学习这个企业建站的系列教程,需要你有一点点的WordPress主题或PHP开发基础,没有基础的也可以依样画葫芦,出错了可以给我留言。
需求说明
建企业站,往往会面临着很多稀奇古怪的要求,好在WordPress拥有强大的扩展性,可以应付自如。现在有这样的一个需求:在网站的导航栏中罗列各分类的链接,点击分类链接直接进入该分类下的第一篇文章。使用过WordPress的朋友都知道,点击WordPress的分类链接,将会给你展示该分类下的文章列表,如露兜博客的 WordPress 分类,但是人家企业就要求你点击这个分类链接就进入该分类下的第一篇文章,怎么办?其实很简单,先找到该分类下的第一篇文章,然后做跳转即可。
实现办法
先在当前主题目录下新建一个文件,命名为 category.php ,然后用文本编辑器打开,填上以下代码即可:
<?php
/**
* 名称:WordPress分类页跳转到分类目录下第一篇文章
* 作者:露兜
* 博客:http://www.ludou.org/
* 最后修改:2011年03月04日
*/
global $wp_query;
// 获取当前分类ID
$cat_ID = get_query_var('cat');
// 获取当前分类下的第一篇文章
$myposts = get_posts('showposts=1&orderby=title&order=ASC&category='.$cat_ID);
if($myposts) {
$mylink = get_permalink($myposts[0]->ID);
header ("Location: " . $mylink );
exit;
}
else {
header ("Location: " . get_option('home') );
exit;
}
?>
具体的演示效果,见我们制作的一个站:www.3kseo.com ,导航栏的 Human Resources 就是一个分类,链接为 http://www.3kseo.com/?cat=5。点击 Human Resources 看到的不是一个文章列表页,而是该分类下的第一篇文章 Campus Employment,看看浏览器地址栏的网址已经变成了 http://www.3kseo.com/?p=58
补充说明
以上代码将会针对所有分类页,也就是说点击任意一个分类的链接,都将直接跳转到这个分类下的第一篇文章。如果你想让某个分类不受此影响,可以将以上代码的17行改成:
if($myposts && $cat_ID != 555) {
555为你想要排除的分类id。分类id的获取方式:进入WordPress管理后台,依次进入 文章 -> 分类目录,各个分类标题的链接类似,http://www.example.com/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=888&post_type=post,这其中tag_ID=888,888就是该分类的id
这个有一个不好的地方就是列表页就看不到了,所有的列表页都看不到。