我有一个客户端在IIS上安装了WordPress(php5,快速cgi),并且我的菜单出现问题。具有讽刺意味的是,如果他恢复到我以前的主题版本,菜单显示正常。由于我在两个版本之间更改了查询,我想知道是否有人能够在后者中发现问题。
以前的版本查询似乎工作正常:
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 );
?>
答案 0 :(得分:1)
我无法看到IIS如何影响这个 - 你确定这两个环境都运行相同的WordPress版本吗?
我还建议使用posts_per_page
而不是showposts
- 如文档中所述,showposts
已被弃用,并且可能会在不久的将来完全删除。