wordpress增加分类导航
时间:09-04-10 栏目:技术应用 作者:边际 评论:5 点击: 3 次
转自:无啊!是但!!的博客
wordpress的导航很简单,默认的是只显示首页和单一页面,有可能还会有个RSS按钮,这是由wordpress本身的设计理念所决定的,但对于网站最佳体验来说是不够的,特别是中文读者,对这么简单的导航栏可能会不知所措,所以当你架设好wordpress,内容也逐渐丰富后,别忘记也丰富一下你的导航栏。
第一个想到的就是将文章分类加入导航,由于不懂网页代码,所以最先想到的就是使用wordpress现成的插件,搜索一下没有发现又好又简单的插件,也可能是自己运气不好。最后在各大wordpress发现问这个问题的挺多,高手们都是推荐在header.php里面加入代码来解决,都说是最简单的方法。
既然这样就放弃插件,挽起袖子自己动手吧,走一步试一步,失败不要紧,只要有备份。进到后台后,在设计->主题编辑 里找到header.php,点开就可以看到里面的代码,谨慎起见,先将里面的代码复制出来备份一个,如果出错就再粘贴回来。好了,有了这个定心丸,就可以在天书般的代码里查找“wp_list_pages”这个词组,推荐使用浏览器自带的搜索框会很快找到,如果不出意外,代码里应该只有一个“wp_list_pages”,看清楚它的位置,应该类似于下面的代码(和你的代码可能有差别,但“wp_list_pages”位置是差不多的)
<li><a href="<?php echo get_settings(’home’); ?>">Home</a></li>
<?php wp_list_pages(’title_li=&depth=1′); ?>
其中home就是导航中的“首页”按钮,而下面这一行代码就是控制单一页面在导航中的显示,现在使用使用复制粘贴大法,将下面一行复制粘贴到前面,并将里面的“pages”改成“categories”,保存后看一下页面效果吧,是不是很简单。
<li><a href="<?php echo get_settings(’home’); ?>">Home</a></li>
<?php wp_list_categories(’title_li=&depth=1′); ?>
<?php wp_list_pages(’title_li=&depth=1′); ?>
当然这种偷梁换柱的方法只能展现最基本的效果,如果你想要打造更强的导航栏,那你需要掌握点基本编码,并了解下函数参数等,下面是转自網生@誌 | zEUS.’Blog的WordPress 中 categories 的用法
在 WordPress 中,一般 wp_list_categories 来显示所有分类的链接列表,它有两种表示方法:list_cats()(deprecated) 和 wp_list_cats()(deprecated),下面是使用方法:
<?php wp_list_categories(’参数’); ?>
默认参数设置为:
$defaults = array(
’show_option_all’ => ”, 无链接的分类
‘orderby’ => ‘name’, 按照分类名排序
‘order’ => ‘ASC’, 升序
’show_last_update’ => 0, 不显示分类中日志的最新时间戳
’style’ => ‘list’, 用列表显示分类
’show_count’ => 0, 0, 不显示分类下的日志数
‘hide_empty’ => 1, Displays only Categories with posts
‘use_desc_for_title’ => 1, 显示分类链接中 title 标签的分类描述
‘child_of’ => 0, 子分类无限制
‘feed’ => ”, 无 feed
‘feed_image’ => ”, 无 feed 图片显示
‘exclude’ => ”, 不在分类列表中显示该分类
‘hierarchical’ => true, 分层显示父/子分类
‘title_li’ => __(’Categories’), 在列表前作为标题显示分类
‘echo’ => 1 显示分类
);
用法举例:
1、按照字母排序,并只显示 ID 为16、3、9和5的分类:
<ul>
<?php
wp_list_categories(’orderby=name&include=3,5,9,16′); ?>
</ul>
2、按照字母排序,显示每个分类的日志数,但不显示 ID 为10的分类
<ul>
<?php
wp_list_categories(’orderby=name&show_count=1&exclude=10′); ?>
</ul>
3、显示或隐藏列表头,在分类函数 wp_list_categories 中,title_li 这个参数用于设置或者隐藏分类列表的头或者标题。它的默认值是:‘(__(’Categories’)’ ,这也就是为什么我们在不另设置分类列表标题的时候,它会显示“Categories”的原因。如果你在这里不设置任何参数,那么它将什么都不会显示。下面的例子是排除 ID 为4和7并且隐藏列表头的分类列表:
<ul>
<?php
wp_list_categories(’exclude=4,7&title_li=’); ?>
</ul>
接下来的例子是仅仅只显示 ID为5、9和23,并且列表头显示为“诗歌”的分类列表:
<ul>
<?php
wp_list_categories(’include=5,9,23&title_li=<h2>’ . __(’诗歌’) . ‘</h2>’ ); ?>
</ul>
4、仅显示某个分类下的子分类,下面的示例代码生成了 ID 为8的父分类下的子分类根据其 ID 进行排序的链接列表(读起来真绕口 -__-|||),它会显示每个分类下的文章数,并且隐藏链接的 title 标签中的分类描述,注意:如果父分类下没有任何文章,那么父分类将不会显示
<ul>
<?php wp_list_categories(’orderby=id&show_count=1
&use_desc_for_title=0&child_of=8′); ?>
</ul>
这个函数里设置的参数比较多,这里我稍作说明:我们可以看到不同参数之间使用了“&”这个“与符号”来进行区分连接,orderby=id 按照 ID 排序,show_count=1 显示分类下的文章数,use_desc_for_title=0 隐藏分类描述,child_of=8 指定 ID 为8的子分类。
5、显示带有 RSS Feed 链接的分类列表,下面代码根据分类名对分类列表排序,并显示每个分类下的文章数和 RSS 的 Feed 链接。
<ul>
<?php
wp_list_categories(’orderby=name&show_count=1&feed=RSS’); ?>
</ul>
还可以使用 RSS 图标代替 RSS 链接
<ul>
<?php
wp_list_categories(’orderby=name&show_count=1
&feed_image=/images/rss.gif’); ?>
</ul>
6、标记和样式化分类列表,从上面的例子中可以看到,我们将分类列表函数: wp_list_categories() 套用在 ul 和 li 标签里,除此外我们还可以对其进行其它的样式化,个人认为这些工作直接在 CSS 里设置即可,原文档中的方法实际作用并不是很大,这里我就不多做介绍,有兴趣的朋友可以 参考这里