自定义Wp_Query仍然使用主帖子ID

时间:2014-06-09 17:35:19

标签: wordpress

在我的Wordpress网站上,我有以下代码:

if ( is_page( 8 ) ) { 
    include_once('somecustompage.php');
}

在我的somecustompage.php中,我使用自定义WP_Query

// WP_Query arguments
$args = array (
    'post_type'              => 'farewell',
    'post_status'            => 'publish',
    'pagination'             => true,
    'posts_per_page'         => '10',
    'sticky'                 => false
);

// The Query
$current_farewell_query = new WP_Query( $args );

// The Loop
if ( $current_farewell_query->have_posts() ) {
    $current_farewells = '<table><tr><th>NAME</th><th>LOCATION</th><th>FAREWELL</th></tr>';
    while ( $current_farewell_query->have_posts() ) {
        $farewell_name = ( get_field('name') ? get_field('name') : '' );
        $chapels = wp_get_post_terms( get_the_ID(), 'chapels', array('fields' => 'name') );

        $current_farewell_query->the_post();
        $current_farewells .= '<tr>';
        $current_farewells .= '<td>' . $farewell_name . '</td>';
        $current_farewells .= '<td></td>';
        $current_farewells .= '<td></td>';
        $current_farewells .= '</tr>';
    }
    $current_farewells .= '</table>';
} else {
    $current_farewells = 'No Current Farewells.';
}

// Restore original Post Data
wp_reset_postdata();

但是,当我尝试在此自定义循环中使用帖子ID时,get_the_ID()$post->ID都返回8,这是主页面帖子ID。我需要使用新查询中返回的新帖子ID。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我发现了问题所在。应该在此行之后调用所有内容:$current_farewell_query->the_post();以使查询按预期工作。