PHP将第一个POST与wpdb->GET_RESULTS()返回的数组分开

时间:2012-03-26 作者:jammypeach

抱歉,如果标题不清楚,我想不出该怎么说。

我得到了一个非常标准的帖子列表,如下所示:

    $pageposts=$wpdb->get_results("
            SELECT * FROM $wpdb->posts 
            WHERE post_type=\'post\' AND post_status=\'publish\' 
            ORDER BY post_date DESC LIMIT 6
        ", OBJECT);
    $firstpost = array_shift($pageposts);  
但这并没有回报我的期望。而不是$firstpost 控制阵列中的第一个立柱$pageposts (如docs 它包含最古老的$pageposts 仍然包含该帖子(根据文档不应包含该帖子),但缺少最新的帖子。我不知道Gordon Bennet到底怎么了我也试过了array_pop() 这应该与array_shift(), 但同样奇怪的结果(最新帖子显示$firstpost 仍然包含错误的值)。

好的,我已经讲了一点,最后,我想做一个简单的查询,得到结果,然后在页面的一个区域打印出最新的帖子,然后在另一个区域打印出其余的帖子。问题是,在HTML中,旧帖子排在新帖子之前,因此我需要将其拆分为一个单独的变量,并确保旧帖子不会与其他帖子一起显示新帖子。

这有意义吗?

感谢您的帮助:)

1 个回复
最合适的回答,由SO网友:Rajeev Vyas 整理而成

一旦您按照特定的顺序设置了一组结果,您就可以简单地实现它,如下所示:-

$pageposts=$wpdb->get_results("
            SELECT * FROM $wpdb->posts 
            WHERE post_type=\'post\' AND post_status=\'publish\' 
            ORDER BY post_date DESC LIMIT 6
        ", OBJECT);
第一次

$i=1;
foreach($pageposts as $pageposts_first){
//here goes your first post
if($i==1) break;
}
其余职位

$i=0;
foreach($pageposts as $pageposts_rest){
 $i++;
   if($i==1) continue;
  //here goes you rest of posts
}
即使使用get\\u posts,也可以执行相同的操作。。

结束

相关推荐

使用nginx和php-fpm的多域WordPress安装

我是Wordpress的新手。我在google上搜索了一下,但找不到使用nginx多站点配置安装Wordpress的确切步骤。我想在Ubuntu 11.10上安装wordpress 3.3.1。我已安装我有两个域,我想使用相同的wordpress安装domain1.com domain2.com 您能为多域设置提供nginx和wordpress配置吗?谢谢大家。