为了账号安全,请及时绑定邮箱和手机立即绑定

Wordpress WP_Query 结果数组

Wordpress WP_Query 结果数组

PHP
Helenr 2022-07-22 15:34:58
我正在尝试让我的 wordpress 主页只显示 2 篇博文。具有不同的显示元素。其中一个是左浮动,一个是右浮动。在本机 php 上,很容易将结果作为数组获取。$result[0]并用和打印它们$result[1]。但是在 wordpress idk 上可以做到这一点。也许你们可以帮助我指导任何文档。像 wp_query 等等,别忘了给我一个示例代码行*对不起,我的英语太糟糕了。我希望你们阅读此内容并回复此内容。我当前的代码行是:$blogposts = new WP_Query(array(        'post_type' => 'post',        'posts_per_page' => 2,    ));while ($blogposts->have_posts()) {        $blogposts->the_post();}
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

如果您对数组更熟悉,则可以随时使用该get_posts()函数,它接受参数(几乎)与WP_Query()Class 完全一样。get_posts()实际上也可以使用WP_Query。


也就是说,您的代码不会像您提到的那样使用“本机 PHP”进行修改。它只是一个while循环而不是一个foreach循环,两者都是相似的控制结构。


您所要做的就是添加一个计数器变量并在每次通过后使用增量运算符递增它:++


这是一个快速的代码示例:


$args = array(

    'posts_per_page' => 2,

);


$query = new WP_Query( $args );


if( $query->have_posts() ){

    $count = 0; // Start a Counter


    while( $query->have_posts() ){

        $query->the_post();


        printf( '<div class="post float-%s">', ($count++ % 2 == 0) ? 'left' : 'right' ); // If counter is odd: "left", even: "right"

            printf( '<h4 class="post-title">%s</h4>', get_the_title() );

            the_content();

        echo '</div>';

    }

} else {

    echo 'No Posts Found.';

}

有几件事:

  • 我将$args数组移动到它自己的变量中。一些查询可能会变得相当复杂,将它们作为指定变量可以提高长期可维护性。

  • 如果您只需要 ,您也不需要该post_type参数post,因为这是默认值。

  • 我添加了一个if子句,所以如果你的帖子消失了或者你移动了这段代码,就会有一个“没有找到”的后备。

  • 我在 post 类中使用了一些复杂的三元运算符。我在那里增加它,所以我们不需要另一行来增加$count后者,它消除了对多行“if/else”来确定leftor的需要right

  • 除此之外,您没有提供标记结构,因此如果您不知道差异,我使用了the_andget_the_函数。


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信