比较WordPress中的两个post_id总是返回true

时间:2013-08-17 21:27:02

标签: wordpress

好的,我正在为我的元框添加一个选择菜单,我想列出相同帖子类型的其他页面,除了我们所在的页面。这是代码:

<select id="page_redirect_select">
<option value="">Select a Page</option>
<?php   
$this_id = $post->ID;
$args = array('post_type' => 'custom-post', 'nopaging'  => true);
$query = new WP_Query( $args );
if($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        $query_id = $query->post->ID;
        if($this_id !== $query_id){
            echo "<option value='";
            echo the_permalink();
            echo "'>".get_the_title();
            echo "</option>\n";
        }
    }
}
wp_reset_postdata();
?>
<option value="other">Other URL</option>
</select>

现在,当我回显$ this_id时,我得到94. $ query_id等于6.但是,在($ this_id!== $ query_id)的比较中,它返回true!有什么想法吗?

1 个答案:

答案 0 :(得分:0)

发现问题。在此之前我有另一个wp_query,并且wp_reset_postdata无效! 所以它从我上次运行的查询中继承了帖子ID。

注意:wp_reset_postdata不起作用!相反,你需要这样做:     $ old_post = $ post;     // ...     //做wp_query工作     // ...     $ post = $ old_post; 我想知道WordPress的人是否知道这个......