为什么我的WP查询没有返回第一个结果的POST META?

时间:2018-01-29 作者:Matthew Woodard

我正在创建一个快捷码,以从自定义帖子类型返回帖子,以及特定的ACF字段。除了第一篇帖子没有返回帖子的元信息外,一切都很好。

我的代码:

$args = array(
    \'post_type\' => \'show\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => -1,
    \'orderby\'   => \'meta_value\',
    \'meta_key\'  => \'show_date\',
    \'order\' => ASC
);

$output = \'\';

$query = new WP_Query( $args );
if( $query->have_posts() ){

    $output .= \'<h1>The Showlist</h1>\';

    while( $query->have_posts() ){

        $show_date = get_field(\'show_date\');
        $show_venue = get_field(\'show_venue\');

        // print \'<pre>\';
        // print_r($show_date);
        // print \'</pre>\';

        $query->the_post();
        $output .= \'<h3>\' . get_the_title() . \' @ <a href="/venue/\' . $show_venue->post_name . \'">\' . $show_venue->post_title . \'</a></h3>\';
        $output .= \'<p>\' . $show_date . \'</p>\';
    }

}
wp_reset_postdata();

// do shortcode actions here
return $output;
我得到的一个例子:

Showlist Title-展会地点-展会日期Showlist Title-展会地点-展会日期Showlist Title-展会地点-展会日期我不知道为什么第一项没有返回元信息。我仔细检查了它是否包含后端的信息。

有什么想法吗?TIA。

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

    $show_date = get_field(\'show_date\');
    $show_venue = get_field(\'show_venue\');

    // print \'<pre>\';
    // print_r($show_date);
    // print \'</pre>\';

    $query->the_post();
获取值后,您正在设置活动帖子。

$query->the_post() 始终位于while循环的顶部,以便其他函数可以依赖于正确设置的全局$post变量。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post

为什么我的WP查询没有返回第一个结果的POST META? - 小码农CODE - 行之有效找到问题解决它

为什么我的WP查询没有返回第一个结果的POST META?

时间:2018-01-29 作者:Matthew Woodard

我正在创建一个快捷码,以从自定义帖子类型返回帖子,以及特定的ACF字段。除了第一篇帖子没有返回帖子的元信息外,一切都很好。

我的代码:

$args = array(
    \'post_type\' => \'show\',
    \'post_status\' => \'publish\',
    \'posts_per_page\' => -1,
    \'orderby\'   => \'meta_value\',
    \'meta_key\'  => \'show_date\',
    \'order\' => ASC
);

$output = \'\';

$query = new WP_Query( $args );
if( $query->have_posts() ){

    $output .= \'<h1>The Showlist</h1>\';

    while( $query->have_posts() ){

        $show_date = get_field(\'show_date\');
        $show_venue = get_field(\'show_venue\');

        // print \'<pre>\';
        // print_r($show_date);
        // print \'</pre>\';

        $query->the_post();
        $output .= \'<h3>\' . get_the_title() . \' @ <a href="/venue/\' . $show_venue->post_name . \'">\' . $show_venue->post_title . \'</a></h3>\';
        $output .= \'<p>\' . $show_date . \'</p>\';
    }

}
wp_reset_postdata();

// do shortcode actions here
return $output;
我得到的一个例子:

Showlist Title-展会地点-展会日期Showlist Title-展会地点-展会日期Showlist Title-展会地点-展会日期我不知道为什么第一项没有返回元信息。我仔细检查了它是否包含后端的信息。

有什么想法吗?TIA。

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

    $show_date = get_field(\'show_date\');
    $show_venue = get_field(\'show_venue\');

    // print \'<pre>\';
    // print_r($show_date);
    // print \'</pre>\';

    $query->the_post();
获取值后,您正在设置活动帖子。

$query->the_post() 始终位于while循环的顶部,以便其他函数可以依赖于正确设置的全局$post变量。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post