Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WP_查询返回错误的结果_Php_Wordpress - Fatal编程技术网

Php WP_查询返回错误的结果

Php WP_查询返回错误的结果,php,wordpress,Php,Wordpress,我的插件为wordpress添加了一个自定义的帖子类型,我想显示所有已经发布的帖子。我使用wp_查询来显示所有帖子,但它似乎会获取所有帖子,而不管它们的状态如何。我忘了什么吗 请注意,状态从发布更改为草稿,我使用wp_update_post()编辑帖子状态。 这是我的密码: 循环: function jobs_list_loop() { global $paged; //$curpage = $paged ? $paged : 1; if ( get_query_var(

我的插件为wordpress添加了一个自定义的帖子类型,我想显示所有已经发布的帖子。我使用wp_查询来显示所有帖子,但它似乎会获取所有帖子,而不管它们的状态如何。我忘了什么吗

请注意,状态从发布更改为草稿,我使用wp_update_post()编辑帖子状态。 这是我的密码:

循环:

function jobs_list_loop() {
    global $paged;
    //$curpage = $paged ? $paged : 1;
    if ( get_query_var('paged') ) {
                        $paged = get_query_var('paged');
                } elseif ( get_query_var('page') ) {
                        $paged = get_query_var('page');
                } else {
                        $paged = 1;
                }
    $args = array(
        'post_type' => 'job',
        'orderby' => 'ID',
        'posts_per_page' => POST_PER_PAGE,
        'post_status' => 'publish',
        'paged' => $paged
    );
    $query = new WP_Query($args);
    $curpage = $paged;
    if($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
    ?>
    <div id="post-<?php the_ID(); ?>" class="quote">    
    <?php
    echo get_the_post_thumbnail($post->ID, array($image_width,$image_height));
    the_content();
    ?>
    </div>
    <?php
    endwhile;
        echo '
        <div id="wp_pagination">
            <a class="first page button" href="'.get_pagenum_link(1).'">&laquo;</a>
            <a class="previous page button" href="'.get_pagenum_link(($curpage-1 > 0 ? $curpage-1 : 1)).'">&lsaquo;</a>';
            for($i=1;$i<=$query->max_num_pages;$i++)
                echo '<a class="'.($i == $curpage ? 'active ' : '').'page button" href="'.get_pagenum_link($i).'">'.$i.'</a>';
            echo '
            <a class="next page button" href="'.get_pagenum_link(($curpage+1 <= $query->max_num_pages ? $curpage+1 : $query->max_num_pages)).'">&rsaquo;</a>
            <a class="last page button" href="'.get_pagenum_link($query->max_num_pages).'">&raquo;</a>
        </div>
        ';
        wp_reset_postdata();
    endif;
}
请注意,如果我改为查询,只获取草稿、垃圾箱或其他东西,它会成功地执行。 我忘了什么吗?我做了大量的研究,找不到任何合适的答案


谢谢。

是否应该改为wp\U update\u post($jb\u post)?查询参数看起来是正确的,你能确认这些帖子实际上是在数据库中发布的吗?它应该是$jb_post,我编辑了代码,但忘记了这一点。。关于db,值在db中从发布到草稿,这没有问题,这导致在循环中显示“此帖子不存在”。老实说,我可以控制每个帖子的post_状态值,然后根据值选择显示或不显示,但我觉得我遗漏了一些东西,我不想开始写这么愚蠢的代码。。。
  $jb_post = array(
      'ID' => $id,
      'post_status' => 'draft'
  );
  wp_update_post( $jb_post );