WordPress主题is_home()等函数失效怎么办?
- 发布在 也说技术
- 2010, 九月 17
老饕在修改iNeutral时,曾碰到进行页面属性判断的函数is_home(),is_single()等失效的问题~~这些函数失效的话,主要会影响侧边栏的一些小工具的显示。比如你或者会有如下的一段代码:
- <div id="side_bottom_ex">
- <div class="side_box">
- <h3 class="side_title">LINKS</h3>
- <ul id="blogroll"><?php if (is_home()) : ?>
- <li><?php wp_list_bookmarks('title_li=&categorize=0'); ?></li>
- </ul><?php endif; ?>
- </div>
- </div>
这段代码中用到了is_home()这个函数,对侧边栏的友情链接显示进行判断:如果当前页面是home,则显示友情链接,否则不显示。也就是说,如果朋友们想要自定义DIY一下自己的侧边栏,is_home()这样的函数是经常要用到的。可是,一些时候,is_home()会失效。
失效原因一般跟Wordpress的另一个重要函数有关:query_post()。这个函数的功能是调用博客日志,我们的首页,single页,之所以能够显示文章,就是它(还有get_post())的功劳。而老饕现在的iNeutral的侧边栏“最近出蛋榜”,就是利用该函数来调用实现的。好了,既然问题找到,当然要提供解决方法了!
解决方案:
解决方法很简单:在引用到 query_posts()函数的结尾endwhile后面加上wp_reset_query()函数即可!具体修改代码如下:
- <?php
- query_posts(array('orderby' => 'rand', 'showposts' => 10));
- if (have_posts()) :
- while (have_posts()) : the_post();?>
- <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
- <?php endwhile;endif;wp_reset_query(); ?>
如果朋友们也有遇到这样的问题,不妨一试!
好了,搞定收工!
最近也遇到了这个问题,最终解决了。
[点击回复]
wordpress 不知道有没有函数手册?
[点击回复]
老饕 回复:
十月 2nd, 2010 at 11:25 下午
@miracle, codex.wordpress.com ~~翻译为中文的内容很少,凑乎看英文吧!
[点击回复]
老饕 回复:
十月 2nd, 2010 at 11:26 下午
@miracle, 还有,可以问一下你是通过什么途径访问到这篇文章的吗?
[点击回复]
我曾经在用Wp-logic插件的时候出现过类似的这些函数不工作的情况。
[点击回复]
老饕 回复:
十月 2nd, 2010 at 11:21 下午
@Dawnson, Wp-logic即是调用这些函数~~其实还是is_home等函数失效了~
[点击回复]
小问题,不过路过看看···
[点击回复]
老饕 回复:
九月 23rd, 2010 at 7:35 下午
@小纽扣, 呵呵~~你很强啊~
[点击回复]
没有遇到过
有个小问题请教下,一个国外的主题,后台设置选择分类的时候分类出现乱码怎么回事啊?
[点击回复]
老饕 回复:
九月 19th, 2010 at 9:50 下午
@abx, 这个具体还是看代码~~把编码转化成utf8试一下~
[点击回复]
好在iNove没有这样的问题
mg12大大写的模版就是可读性很强折腾相对来说要方便许多
[点击回复]
老饕 回复:
九月 19th, 2010 at 9:47 下午
@lovee, 其实这个是自定义的时候遇到的问题~~只要侧边栏没有直接调用querypost豪函数就不会有问题
[点击回复]
暂时还没失效。。。
[点击回复]
是不是每个用WP的人,都会成为PHP CODER。。。
[点击回复]
我的链接都是首页和内页通通链!
[点击回复]
老饕 回复:
九月 17th, 2010 at 10:08 下午
@zen cart, 呵呵~不只是链接了~就像我的“老饕家的龟”~为了不影响速度~就只在内页
[点击回复]
zen cart 回复:
九月 18th, 2010 at 8:56 上午
@老饕, 哈哈,你那只龟很可爱!
[点击回复]
函数实效的原因会是什么呢?
[点击回复]
老饕 回复:
九月 17th, 2010 at 10:11 下午
@有点蓝, 应该有讲清楚吧~query_post()函数的原因~
[点击回复]
有点蓝 回复:
九月 18th, 2010 at 12:42 下午
@老饕, 是我没表达清楚,我指的是:为什么会有函数会实效呢?不单单说的是ishome或者querypost……
[点击回复]
老饕 回复:
九月 18th, 2010 at 10:14 下午
@有点蓝, 呵呵~~这样的话要研究一下Wordpress函数的实现机理~~我还没搞清楚~
[点击回复]
没碰到过。
[点击回复]
老饕 回复:
九月 17th, 2010 at 10:15 下午
@柳城, 在侧边栏调用query_post()函数,一般都会使这些判断函数失效
[点击回复]
刚开始我也为这个郁闷,后来才发现这个问题
[点击回复]
老饕 回复:
九月 17th, 2010 at 10:16 下午
@万戈, 我过了N久才发现~~杯具
[点击回复]