WordPress 3.0 主题的向下兼容问题
直到现在我的 WordPress 还停留在 2.9.2,一直没有升到 3.0+。我们都知道 WordPress 3.0 对于单用户操作的博主而言,最耀眼的功能就在于导航菜单了,像我这样都还没有升级到 WordPress 3.0 的人来说,本没啥资格来谈论 3.0 的是与非,而且也有不少大虾们已经写过很多出彩的文章了。感谢一下陈小黑童鞋,给了我一个装好 WordPress 3.0 的测试站,让我在做的新主题有了开发的空间,我也就玩一下这 3.0 的导航菜单功能。
关于在主题中怎么添加 WordPress 3.0 的导航菜单功能我就不多说了,因为看很多人都写过鸟。我就来说一下这 3.0 的向下兼容问题。在我给新主题加上导航菜单功能后,发现一个很严重的问题,就是这个 wp_nav_menu() 调用函数居然只支持 WordPress 3.0,在我本地的 2.9 的环境中就报错了。可见 WordPress 官方的小组在升级的时候相当不给力啊,还要用户和开发者自己做向下兼容的处理。
看到一篇传说可以解决 WordPress 3.0 主题向下兼容以前版本的方法,不过明显作者在写代码的时候比较粗糙,并没有验证过(就算验证,也就是 WordPress 3.0 中作的测试),在我的 2.9 下还是行不通,仔细看了一下,也就是少了个判断,略加修改就可以使用了。
把以下代码复制到 WordPress 的 functions.php 中:
function mytheme_addmenus() {
register_nav_menus(array('primary' => 'The Main Menu'));
}
add_action( 'init', 'mytheme_addmenus' );
}
function mytheme_nav() {
if ( function_exists( 'wp_nav_menu' ) )
wp_nav_menu( 'menu=primary&container_class=pagemenu&fallback_cb=mytheme_nav_fallback' );
else
mytheme_nav_fallback();
}
function mytheme_nav_fallback() {
wp_page_menu( 'show_home=Start&menu_class=pagemenu' );
}
然后在主题需要的地方,比如说 header.php 中用这行代码调用即可:
这样就好了。回过来解释一下加入 functions.php 中的代码,简单来说分这么几个过程:1.判断是否支导航菜单的函数(也就是判断是不是 WordPress 3.0)2.如果是,就再调用 wp_nav_menu() 这个 3.0 中的导航菜单函数,一些参数什么的都可以在这里设置。3.如果不是,就调用 3.0 以下支持的 wp_page_menu() 这个函数,当然你也可以不用 wp_page_menu(),自己写在此情况下输出的内容,比较个性化。最后强烈建议 WordPress 官方将下一次升级中把这个兼容问题考虑进去。
-
新年新气象,博客换新衣2012年01月20日 -
Wordpress 我变我变我变变变2011年04月27日 -
Wordpress 自定义顶部图像2011年01月29日 -
给 Wordpress 主题添加个性化小工具2011年01月16日
是不是说只要不要新版本的新功能,旧主题一般也是可以使用的?不会在新版本下面出现问题?
我也还没有升级,因为没有中文的,英文虽然也会看个大概了,但是还是不想升,我等官方出中文再说,小白鼠死的惨,尤其我们不懂得。
嗯,这样的方法,小菜们可是不也享用啊!
还是等等待吧
3.0是潮流了
用新版本的函數都要function_exists判斷的啊
我那后台老提示有3.01,我都不知道升不升,英文的自己不想搞
还是用2.92的好
不敢冒然升级。
哎。。每次看到你的排名就很 鸡洞。。
没啥感觉啊
还没开始用3.0
对我也没什么太大用处,哈哈
最新版用户飘过顶过..
我出现了
你上哪里了呀?好久不见了。
2.92用户继续观望!
添加评论内容
这个我还没用我现在用的是2.9的。
和你一样
我还没有升级的
还用2.9.
从皮肉折腾到骨子里去了。
我用的是chrome,看到浏览器标题栏写着《欢迎逸林居士》,这效果.....还是不如显示日志标题的好啊。
我也还没有升级 等想升级了再说
说实话,还是不清楚3.0那个功能具体有啥用...
你用过3.0的主题应该就知道了
刚刚升级到3.0.1,强力无聊中 ~
期盼小邪的折腾大作
为啥我看着这代码就晕了
我看着SEO就晕。。。
咋要学我涅。。。
苦等WP 3.0官方中文版出来了再升级
人家是把我们给忘了
这个东西做不做向下兼容,对于官方来说应该是很纠结的
是啊,难道官方就这样舍弃了3.0之前的版本吗?
我添加了这个函数,提交到官方了。但是不知道会不会被退回来。
新改版之后主题审核速度异常缓慢……都3、4天了,没动静。
我还没有提交过官方,我也要试试
失手就好了,哈哈,我眼馋这个主题很久了……
我的链接是手动的,各个版本通吃!
自己用的主题是可以手动,共享的主题就不合适啦
我不共享,我自由!oye!
测试主题 在本机安装环境多好
本地总是没有服务器上的感觉好
3.0的中文版就是不出来,难道官方忘了我们,太
。
我看有不少第三方的汉化也做的不错
我的主题太复杂了~~不好改动
导航菜单是否只加一句代码下去就行呢?我在functions.php 里面加了,结果它后台还显示我主题不支持呢..搞到我想本地体验3.0的导航菜单都不行。私下教一下哈
不是哦,先要在functions.php中添加相关函数,然后在header.php中调用
对啊。我加了函数,也在head上面调用了,后台还是说我主题原生不支持导航。我纠结啊..
那你试试本文的代码
好的...
3.0用了这么久 新功能却一直没研究过
天天忙的不亦乐乎 却不知道自己在忙什么。。
麻烦,唉,暂时也没主题需要加
还好还好,折腾惯了
话说每次都是自动升级
问题好像不大
那是因为你没有用到3.0主题的功能吧
坚决不升级。。。。
也不打怪。。
我也不升级,但偶尔打打怪,哈哈
只升级,不打怪,路人+NPC
2.9的自定义菜单我直接在源码中写
这个也不错,不过我私用的主题就不用了,直接写在代码里就成,嘿嘿
先开发292的,之后添加面板选项,如果选择就使用3.0新功能,我是这样的,毕竟css都是一样滴
这个主意好啊,我也要集成到主题里去
靠...我就是看了下你的老文章而已嘛..一个沙发没了
我表示我也想添加缓存头像 所以在围观
我还真不知道3.0的导航菜单有什么功能呢
就是可以个性化定义菜单的功能
平常都用My Category Order,虽然功能没3.0的菜单多,不过也够用了
床 沙发 椅子 凳子 都没了 所以我先看文章在回复!没想到我也用上了3.0主题 这里还要多多感谢万戈哒哒
然后呢 顺便打个广告 新主题会在周一上线测试 届时希望更位客观能来我晒音乐多逛逛 有音乐的分享没音乐的聆听 发现BUG的就顺便提交一下 嘎嘎
谢过 !
不用客气,发现bug和我说下哈~
不過我是2.9.2黨的,杯具個
我也是2.9.2的,打死也不升
一個主題可以載入多個導航,不錯
一般而言也个够了吧
wp好像到现在都没有出3.0中文版不知道怎么搞的。
中文用户被排斥了
前排,萬戈每日都有文真好
如果你每天折腾,也会每天有文的
三点零用户飘过
2.9用户顶你
3.01顶一顶
折腾挂了3.0.1又赶上连续n天断网的表示仅纯友情支持…
哈哈,好文章~~~~
受不了了··twitter来的都慢了好多
刚开始沙发是靠gg reader,后来是靠twitter,现在是比RP
哈哈·就是·要是一直在你这里蹲点的话就机会大多了·哈哈·
不向下兼容,是推荐用户升级的有力法宝。官方既然开始都不考虑兼容,以后估计更不会
难道要之前的用户都抛弃2.9吗?
也不需要抛弃啊,只是不能使用新功能而已。嗯,软件这些都是这样的啦
看到木木再讨论文章主题内容,我感到鸭梨很大啊。
汗。。。只用其中一个该版本新增的函数做判断就可以了
哈,也是,好像那样简单很多
这是常规了。。。。
这个函数很经典啊,应该去默认主题里面的function看看,有很多新的函数
我还没有研究过默认主题耶,从来不看默认的说
这是一个大问题,对于提交WP官方的主题作者而言,都不知道该不该加入这个导航函数的……
加了会不被收录吗?
没试过……
悲剧了。。
二楼出杯具,你来迟了半步
大家都来抢沙发了!
sf
给你一个鼓劲奖
我來給親吻了(安慰用)
我也要
大老婆她會……
(逃跑
小老婆被我T飞了,所以现在老婆不分大小
LS杀气冲天了
会悲剧的
幸好我沒給萬戈親吻…
比万戈的受用多了
。。。人家不就是多给两个亲嘛
萬戈你別扭了?
沙发一个!
哈哈,采访一下,沙发的感觉如何?
没啥感觉啊,才一次而已!
软棉棉的。哈哈。
新沙发帝?