WordPress的导航栏中让页面和分类目录按照自己想要的顺序并存
  包拯 发表于 2011-12-03 15:26  分类:技术资料  10,435 次阅读  7条评论

安装完WordPress,通常要做的就是为网站添加几个分类目录或者页面作为网站上方的导航和网站博客内容分类之用。添加了分类目录之后,查看了一下网站,你或许会发现:咦,怎么分类目录的顺序不是我要的顺序呢?于是你搜啊、问啊,终于有人告诉你使用插件“Category Order”可以将分类目录排列成你想要的顺序,于是你按照教程做了一下,发现果然OK,你感到很欣慰……

再给网站加上关于和联系我们之类的页面吧——WordPress中分类目录和页面的区别大家都知道吧?不知道可以搜索一下或者在留言问我!于是你新建了“关于”和“联系我们”之类的页面。当你兴冲冲的去打开主页查看你的成果的时候,你又傻眼了:1、我建立的页面怎么没在导航中出现?2、我建立的页面在导航中和分类目录一起出现了,可是这不是我想要的顺序——我想在导航的两个分类目录之间插入一个页面!于是你又搜啊、问啊……

好了,在你找到有效的答案之前,阅读本文下面的内容吧!本文主要就是为了在不使用插件的情况下有效、简单的解决网站导航中,在有页面又有分类目录的情况下,让他们按照你自己想要的顺序并存、排列的问题。

通常情况下,根据不同的网站主题,WordPress网站上方的导航主要有根据分类目录和根据页面以及分类目录和页面并存三种情况。这是在哪里设置的呢?这一般都是在网站主题的代码中进行的设置——别怕,代码并没有那么可怕,让我们一步一步的来完成我们的功能!

首先,用任意文本编辑器打开你的主题目录下的header.php文件。你会找到类似于下面的代码:

<ul class="topnav"><li>

<a href="<?php echo get_option('home'); ?>" title="回到首页">主页</a>

</li>

<?php wp_list_categories('depth=2&title_li=0&orderby=name&show_count=0'); ?>

<?php wp_list_pages('depth=2&title_li='); ?>

</ul>

如果你的主题是只用分类目录导航的,可能上面的代码中没有wp_list_pages这一行,如果你的主题只是用页面导航的,可能就没有wp_list_categories这一行。也就是说,若你发现你添加了分类目录或者页面后,没有在导航栏中显示出来,你就要考虑查看一下你主题的header.php中有没有<?php wp_list_categories();?>或者<?php wp_list_pages();?>这句代码,如果没有,直接加上就可以了。

这几句代码就是本文的关键——当然,你的主题中的这几句代码可能未必是一模一样的,但是在你的header.php或者他转向的php中肯的能找到<?php echo get_option('home'); ?>或者<?php wp_list_categories或者<?php wp_list_pages之类的字样——要找这几句代码就按照上面的几组词进行全文本搜索就可以啦!

这段代码就三句最重要,也是解决本文提出问题的关键,先简单的介绍一下:

<a href="<?php echo get_option('home'); ?>" title="回到首页">主页</a>

这就是你通常看到的导航栏中的“主页”、“首页”、“Home”之类的那个按钮,“回到首页”的字样就是你把鼠标放在导航栏中的“主页”俩字时,显示出来的提示信息。下图中1标识的就是这里写的“主页”俩字,鼠标放在“主页”上显示的提示(2标识的内容),就是上面代码中的“回到首页”。

wordpress

<?php wp_list_categories('depth=2&title_li=0&orderby=name&show_count=0'); ?>

<?php wp_list_pages('depth=2&title_li='); ?>

这两句代码分别用到了WordPress中的wp_list_categorieswp_list_pages函数,其中wp_list_categoriesWordPress中用来显示分类目录的、wp_list_pagesWordPress中用来显示页面的。讲到这里对于一些人而言,本文后面的内容就基本上不用看了,或许现在已经去解决问题去了!!!

啥?一头雾水?这时候一部分人可以在网上搜索一下这俩函数,或者阅读一下本站介绍这俩函数的文章,他们的链接分别是:

WordPresswp_list_pages函数用法详解

http://www.youduoshao.com/2011-11-26/20111126663.html

WordPress显示分类目录函数wp_list_categories函数用法详解

http://www.youduoshao.com/2011-11-26/20111126659.html

看完这俩函数的介绍后,又有一部分人基本上不用看本文后面的内容了!!!

还是一头雾水?那就跟着我的思路接着往下看吧,问题总会解决的。

WordPress中,每篇文章、每个页面、每个分类目录都有自己一个唯一的编号的。

我们用到的方法就是这两个函数里的include参数。这个参数表示你在导航栏中显示的分类目录ID或者页面ID为你指定的数值的分类目录或者页面!

对于wp_list_pages

显示列表中特定页面

若仅希望在列表中显示特定页面,例如编号为3572613的页面,可使用include参数。

<?php wp_list_pages('include=7,13,26,35&title_li=< h2>' . __('Pages') . '</h2>' ); ?>

对于wp_list_categories

1)        按照分类名排序,并只显示 ID 1234的分类:

< ?php

wp_list_categories('orderby=name&include=1,2,3,4'); ?>

这些在我上面说的两篇文章里都有介绍。

我们的方法就是通过include参数来排列页面和分类目录的顺序!

如何查看每个页面或者分类目录的ID呢?相信很多人是已经知道的,但是为了照顾不知道的,我在这里介绍一下:

获取页面的ID

进入后台控制板,点击左侧的【页面】菜单,选择下面的“所有页面”选项,这里列出了你网站的所有页面,在这里查看页面其超链接,一般都会是这样的连接:

http://localhost/wp/wp-admin/post.php?post=412&action=edit

这里,post=后面那个数就是你的相应页面的ID

获取分类目录的ID

步骤和获取页面ID类似,只不过分类目录在左侧的【文章】菜单下,每个分类目录的链接一般都是这样的:

http://localhost/wp/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=3&post_type=post

这里tag_ID=后面那个数字就是你的相应的分类目录的ID

剩下你要做的就是把每个页面和分类目录的ID按照你想要的顺序记录下来,然后在文章之初我们说的header.php中的代码里按照你ID的顺序,添加、修改wp_list_pageswp_list_categoriesinclude参数和摆放位置就可以了。

<ul class="topnav"><li>

<a href="<?php echo get_option('home'); ?>" title="回到首页">主页</a>

</li>

<?php wp_list_categories('depth=2&title_li=0&orderby=name&show_count=0'); ?>

<?php wp_list_pages('depth=2&title_li='); ?>

</ul>

例如,我可以修改为:

<ul class="topnav"><li>

<a href="<?php echo get_option('home'); ?>" title="回到首页">主页</a>

</li>

<?php wp_list_categories('include=3,4,5&depth=2&title_li=0&orderby=name&show_count=0'); ?>

<?php wp_list_pages('include=423&depth=2&title_li='); ?>

<?php wp_list_categories('include=6,7,8,9&depth=2&title_li=0&orderby=name&show_count=0'); ?>

<?php wp_list_pages('include=412&depth=2&title_li='); ?>

</ul>

这样可以不用插件完成我们想要的功能啦!

总结:本文主要用WordPress中的wp_list_pageswp_list_categories这两个函数中的include参数,通过直接修改主题中header.php的代码,在代码中按照自己想要的顺序排列这两个函数的位置,完成WordPress导航栏中让页面和分类目录按照自己想要的顺序并存的功能。

欢迎大家到本站的贴 图 区观看和分享图片,谢谢支持,有任何疑问请在下面直接留言即可!

本文固定链接: http://www.youduoshao.com/2011-12-03/20111203749.html

WordPress的导航栏中让页面和分类目录按照自己想要的顺序并存:目前有7 条评论

  1. liuyecheng发表于 2014年04月27日 13:21
    [回复]

    很谢谢楼主,我现在就在要用分类目录做导航不懂怎么办而困扰,搜到你这个帖子我完全解决了我的问题,谢谢,真的很感谢!

    [回复]

  2. yangjie发表于 2011年12月27日 01:32
    [回复]

    看看下面这个链接,详细的分类目录顺序修改步骤!!!
    http://www.yourightsoft.com/blog/index.php/2011/12/wordpress-change-id-and-order/

    [回复]

    包拯 回复:

    @yangjie,
    呵呵 你那个方法是修改数据库,也是不错的方法,不过你上面说的
    “Category Order 的插件修改分类目录的顺序,但是,这个插件只能修改右边的侧边栏分类目录的顺序,而导航栏的顺序还是无法修改。”
    我觉得如果你的导航是按照分类目录进行的 是可以通过 插件来改顺序的……
    我这个文章主要讲 分类目录 和页面一起作为导航的情况下如何排序的……

    感谢你为我们提供了修改数据库的方法

    [回复]

  3. joe发表于 2011年12月04日 21:23
    [回复]

    你好,你说了如何排列页面的几种方式 ,页面和目录混排基本明白了,不可貌似没有明白如何把分类目录作为页面的子导航呢?

    [回复]

    包拯 回复:

    这个貌似我文章里面确实没有讲哦,不过你要用的话,可以采用这种思路:
    1.给页面建立一些子页面(采用跳转模板的子页面)
    2.将每个子页面都跳转到对应的分类目录
    呵呵,不知道这样说是不是说明白了,如果不明白我找时间再写个文章出来,谢谢你对本站的支持哦

    [回复]

  4. Jiang发表于 2011年12月03日 16:47
    [回复]

    话说你那个贴图弄的挺好玩

    [回复]

    包拯 回复:

    呵呵,是好玩,只是只有我一个人贴,希望以后大家一起贴图

    [回复]

填写您的称呼和邮箱即可发布评论

快捷键:Ctrl+Enter