Custom WP_Query id

时间:2019-02-21 作者:Infolu

我需要创建一个WP_Query 这只列出了一个帖子类型的特定帖子,我在查询中已经有了这一点,但我的问题是查询过滤器通过获取ID来接收,假设我有两篇帖子,其中一篇带有id=10 还有一个id=100 最后只列出id为10的帖子。

此外,如果id是通过get定义的,我需要的是,如果get发送的id包含更多的字母或数字,它会忽略,因为今天如果查询收到id 10sddds,它会接受并显示id 10的帖子,我需要查询忽略由数字和字母组成的id。

    // WP_Query arguments
       $args = array (
        \'post_type\' => \'file\',
        \'p\' => \'925s\',
        \'post_status\' => \'publish\',

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

    if ( $the_query->have_posts() ) {

        while ( $the_query->have_posts() ) {
            $the_query->the_post();
            echo get_the_title(); 
        }

    } else {
        // no posts found
        get_template_part( \'templates/content/not-found-search\' ); 
    }
    wp_reset_postdata();

1 个回复
SO网友:Tom J Nowell

这是一种非常不寻常的方式来实现你想要的

但我的问题是,查询过滤器通过获取ID来接收,假设我有两篇文章,一篇ID=10,另一篇ID=100,最后只列出ID为10的文章。

我不知道您在这里的意思,但我确实注意到它似乎与您的代码示例没有任何共同之处。如果查看查询参数,我们会看到:

       $args = array (
        \'post_type\' => \'file\',
        \'p\' => \'925s\',
        \'post_status\' => \'publish\',

    );
925s 不是有效的帖子ID,如果要获取单个帖子,执行此操作要容易得多:

$p = get_post( 925 );
如果你想在一个查询中获取多个帖子,我们可以在https://codex.wordpress.org/Class_Reference/WP_Query 其中规定:

post\\uu in(数组)-使用post ID。指定要检索的帖子。注意:如果您使用粘性贴子,则会将其包括在内(带前缀!)在您检索的帖子中,无论您是否想要它。要抑制此行为,请使用ignore\\u sticky\\u posts。

给我们:

$args = [
    \'post_type\' => \'file\',
    \'post__in\' => [ 1, 2, 4, etc.. ]
];
所有这些都是一个问题,但你不应该硬编码帖子ID。如果您删除帖子、迁移、移动等,它将中断

使用后段塞,例如。

$args = [
    \'post_type\' => \'file\',
    \'post_name__in\' => [ \'post1\', \'post2\', etc.. ]
];

相关推荐

echo a tax term in loop

对于列表中的每个项目,我需要在之后在此循环中回显CPT的一个术语。感谢您的指导或帮助。原始代码来自Stackoverflow。com,因为它起作用了。 <?php $da_place = get_field(\'smart_place\'); //acf field $args = array( \'post_type\' => \'to_do_items\', \'tax_query\' => array