Apr 01

wordpress升级到2.5以后,最大的问题就是本站的WAP首页无法显示文章列表了,一直是认为数据库结构改变造成WP-T-WAP 插件不能正常工作。于是留言给作者TangGaoWei,同样有多人也提到了这个问题,不过作者的回复是他测试了wp 2.5版本没问题。没法,只好加了点调试代码追踪了下,最终发现是Index.php的41行语句 <?php if (have_posts()) : ?>函数始终返回false,导致取内容失败。很奇怪的是,在同一个文件的106行相同语句是正常的。

接着去wordpress.org找了下,发现有人发现have_posts函数的问题,已经开了ticket(问题记录)了,可以去看看Ticket #6484 ,跟踪下解决方案。

目前验证或者绕开这个问题的方法是修改永久链接格式为默认设置,更改后WP-T-WAP插件工作正常,期待Wordpress开发人员进一步的消息。

PS:几分钟前的更新

04/01/08 14:43:58 changed by lloydbudd

  • milestone set to 2.6.

该不是要等到2.6才改吧?

4月2日更新:WP-T-WAP 插件 升级到1.6,问题解决

相关文章:

written by dzxr \\ tags:


One Response to “wordpress升级到2.5以后have_posts函数异常”

  1. 1. dzxr Says:

    不知道为什么这篇文章没有trackback回来,看看吧

    WP-T-WAP 1.6 已解决无法显示文章列表的问题

    WP-T-WAP 插件一直以来都有部分用户反映“首页的文章列表无法显示”。由于没有找到重现问题的方法,所以也没有真正得到解决。今天终于找到了重现方法,并得以解决。问题单如下:

    1.问题描述

    当用户通过 http://www.***.com/wap 的方法访问 WP-T-WAP 实现的WAP网站时,首页的文章列表区显示空白,文章列表没有正确显示;但是,菜单链接等其它内容能显示正常。

    2.再现方法

    今天早上,看到dzxr的文章,阐述 have_posts() 方法总是返回 false 的问题。其中提到了再现问题的方法:

    将 WordPress 的固定链接设置为非默认值时(即启用rewrite),WP-T-WAP 中的 have_posts() 总是返回 false。WP2.3.* 英文版也存在同样问题。

    3.问题原因

    经过查错,发现出错的原因是系统函数自动将query数组的 “pagename” 变量的值设置成了相当页面的相对地址。这样就导致系统将相当页面当作是 “page” 类型(post_type)页面处理。而实现上,当前页面应该是 “post” 类型。

    4.解决方案

    经过测试,wp-blog-header.php 中的“wp();”行改为“wp(’pagename=’);”可解决问题。但是不可能修改系统代码。所以,可以重新创建一个自己的 wp-blog-header.php 文件,或在自己页面构造类似代码。

    Reply

Leave a Reply

i3Theme sponsored by Top 10 Web Hosting, Hosting in Colombia and Web Hosting Reviews

Copyright © 2001-2010 dzxr.com 给我发邮件 All Rights Reserved 保留所有权利 蜀ICP备05004894号