【问题标题】:WP_Query 'post__in with CustomPost Type not workingWP_Query 'post__in with CustomPost Type 不起作用
【发布时间】:2017-11-16 17:39:09
【问题描述】:

我在 WordPress 中有一个名为 event 的自定义帖子类型。有数百个事件类型的帖子,但有两个示例的 ID 为 760 和 1545。

此代码有效并返回包含正确单个帖子的格式列表:

    $args = array( 'p' => '760', 'post_type' => 'event' );
    $query = new WP_Query($args);
    if ( $query->have_posts() ) :

        $output .= '<ul class="postlist">';
        while ( $query->have_posts() ) :
            $query->the_post();
            $output .= '<li>';
            $output .= '<a href="'.get_the_permalink(get_the_ID()).'" id="'.get_the_ID().'">'.get_the_title().'</a>';
            if ( $excerpt) {
                $output .= '<p>'.get_the_excerpt().'</p>';
            }
            $output .= '</li>';
        endwhile;
        $output .= '</ul>';


    endif;
    wp_reset_postdata();
    echo $output;

如果我将查询修改为以下示例,则不会返回任何内容。这些修改都不会返回任何内容:

    $args = array( 'post__in' => array('760','1545'), 'post_type' => 'event' );
    $args = array( 'post__in' => array('760'), 'post_type' => 'event' );
    $args = array( 'post__in' => array('760','1545'));

请注意,第二个 ID 确实可以正常工作,因此我已验证帖子存在并且可以单独查询:

$args = array( 'p' => '1545', 'post_type' => 'event' );

所以我的问题是,我可以将自定义帖子类型与 post__in 一起使用吗?我在互联网上看到的所有信息都表明它应该可以正常工作。非常感谢您对此的任何想法。

【问题讨论】:

  • 我认为你应该在数组array(760, 1545)中传递(int)
  • 感谢您的评论。不幸的是,传递整数也不起作用

标签: wordpress


【解决方案1】:

问题在于,出于某种原因,我查询的帖子被设置为草稿。这似乎只在使用 post__in 时会影响 WP_Query,它会检查帖子是否具有已发布状态

WordPress 在使用 post__in 时产生的查询如下所示:

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts 
WHERE 1=1 
AND wp_posts.ID IN (760,1545)
AND wp_posts.post_type = 'event'
AND (
    wp_posts.post_status = 'publish'
    OR wp_posts.post_status = 'private'
) 
ORDER BY wp_posts.post_date DESC  

为“p”参数生成的查询如下所示,没有额外的状态过滤器:

SELECT wp_posts.*
FROM wp_posts 
WHERE 1=1 
AND wp_posts.ID = 760
AND wp_posts.post_type = 'event' 
ORDER BY wp_posts.post_date DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2016-06-18
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多