我有一个客户端在IIS(php5,fast cgi)上安装了WordPress,并且我的菜单没有显示出问题。具有讽刺意味的是,如果他回到我以前的主题版本,菜单显示正常。由于我改变了两个版本之间的查询,所以我想知道是否有人能够在后者中发现问题。IIS上的WordPress,WP_Query问题()
以前版本的查询似乎很好地工作:
global $post;
$cat=get_cat_ID('top-menu');
$catHidden=get_cat_ID('hidden');
$count=0;
$mypostsheader = get_posts(array('cat' => "$cat,-$catHidden",'showposts' => $cb2_current_count));
$mypostsheader2 = get_posts(array('cat' => "$cat,-$catHidden",'showposts' => -1));
$mypostsheadercount = count($mypostsheader2);
if($mypostsheader)
{
$current_page = get_post($current_page);
?>
然而,目前的版本采用了略有不同的代码逻辑来建立菜单。这不相同的设置下工作(但它只是对Apache的罚款)
$cat=get_cat_ID('top-menu');
$catHidden=get_cat_ID('hidden');
$myqueryTopMenu = new WP_Query();
$myqueryTopMenu->query(array(
'cat' => "$cat,-$catHidden",
'post_not_in' => get_option('sticky_posts')
));
$mypostsheadercount = $myqueryTopMenu->found_posts;
if($mypostsheadercount > 0)
{
global $post;
$mypostsheader = get_posts(array('cat' => "$cat,-$catHidden",'showposts' => $cb2_current_count));
$current_page = get_post($current_page);
?>
什么不行?你会得到什么错误? – 2010-06-29 12:11:04
没有错误,菜单在示例2中没有写入浏览器,但在示例1中。这只出现在这个特定的安装上,恰好在IIS中运行。我已经缩小到if($ mypostsheadercount> 0)代码块。如果我将测试更改为> =它工作正常,所以我的问题显然是在获取变量计算。 – 2010-07-01 12:19:26