Wordpress WP_Query 结果数组

Wordpress WP_Query result array

我正在尝试让我的 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();

}

如果您更习惯使用数组,可以随时使用 get_posts() function instead, which takes arguments (almost) exactly like the WP_Query() Class。 get_posts() 实际上也使用了 WP_Query

就是说,使用 "native PHP" 修改您的代码并不像您提到的那么困难。只是一个while loop instead of a foreach循环,两者都是类似的控制结构

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

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

$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,您也不需要 post_type 参数,因为这是默认值。

  • 我添加了一个 if 子句,所以如果你的 post 消失了或者你移动了这段代码,"nothing found" 就会有回退.

  • 我在postclass中用了点复杂的Ternary Operator。我在那里递增它,这样我们以后就不需要另一行来递增 $count,并且它不需要多行 "if/else" 来确定 leftright .

  • 除此之外,您没有提供标记结构,所以我使用了 如果您不知道其中的区别。