需求说明
建企业站,往往会面临着很多稀奇古怪的要求,好在WordPress拥有强大的扩展性,可以应付自如。现在有这样的一个需求:在网站的导航栏中罗列各分类的链接,点击分类链接直接进入该分类下的第一篇文章。使用过WordPress的朋友都知道,点击WordPress的分类链接,将会给你展示该分类下的文章列表,如露兜博客的 WordPress 分类,但是人家企业就要求你点击这个分类链接就进入该分类下的第一篇文章,怎么办?其实很简单,先找到该分类下的第一篇文章,然后做跳转即可。
实现办法
先在当前主题目录下新建一个文件,命名为 category.php ,然后用文本编辑器打开,填上以下代码即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php 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; } ?> |
具体的演示效果,见我们制作的一个企业站:Nashow Group,导航栏的 Human Resources 就是一个分类,链接为 http://www.nashowgroup.com/?cat=5。点击 Human Resources 看到的不是一个文章列表页,而是该分类下的第一篇文章 Campus Employment,看看浏览器地址栏的网址已经变成了 http://www.nashowgroup.com/?p=58
补充说明
以上代码将会针对所有分类页,也就是说点击任意一个分类的链接,都将直接跳转到这个分类下的第一篇文章。如果你想让某个分类不受此影响,可以将以上代码的17行改成:
1 |
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
暂无评论