猿问

按 ID 查询帖子总是返回最新的帖子(WordPress)

我正在尝试通过 ID检索单个帖子。Stories是我的自定义帖子类型,它目前有三个帖子:

  1. 博客 1 (ID: 1)

  2. 博客 2 (ID: 14)

  3. 博客 3 (ID: 49)

我有一个名为$story_one$story_one的值为14

我现在正试图从ID14 的帖子中检索信息,所以我已经完成了:

<?php


$args = array(

  'post_type'      => 'stories',

  'id'             => $story_one,

  'posts_per_page' => 1

);

$query = new WP_Query( $args );

if( $query->have_posts() ) {

  while( $query->have_posts() ) {

    $query->the_post(); 

    the_title();

  } 

  wp_reset_postdata();

}


?>

这将返回博客 3。博客 3 是stories. 当我指定它从 ID 为 14(博客 2)的帖子中提取内容时,为什么会这样。向我展示最新博客的内容?


三国纷争
浏览 110回答 3
3回答

白衣染霜花

WP_Query()您可以使用代替 using ,get_post()如下所示:<?php&nbsp; $post = get_post($story_one);&nbsp; if(!empty($post)):&nbsp; &nbsp; echo $post->post_title;&nbsp; &nbsp; echo get_field("field name", $story_one);&nbsp; endif;?>关于仅从stories帖子类型中获取。每个帖子类型都存储在同一个帖子表中,因此它们必须使用不同的帖子 ID。第二个parameter功能get_field()是帖子ID。

POPMUISE

帖子query_varIDp不是id&nbsp; &nbsp; $args = array(&nbsp; &nbsp; &nbsp; 'post_type'&nbsp; &nbsp; &nbsp; => 'stories',&nbsp; &nbsp; &nbsp; 'p'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; => $story_one,&nbsp; &nbsp; &nbsp; 'posts_per_page' => 1&nbsp; &nbsp; );&nbsp; &nbsp; $query = new WP_Query( $args );&nbsp; &nbsp; if( $query->have_posts() ) {&nbsp; &nbsp; &nbsp; while( $query->have_posts() ) {&nbsp; &nbsp; &nbsp; &nbsp; $query->the_post();&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; the_title();&nbsp; &nbsp; &nbsp; }&nbsp;&nbsp; &nbsp; &nbsp; wp_reset_postdata();&nbsp; &nbsp; }

长风秋雁

我建议继续使用 WP_Query。问题只是查询参数之一。我会将“p”添加到您的 $args 变量中......就像这样......$args = array(&nbsp; 'post_type'&nbsp; &nbsp; &nbsp; => 'stories',&nbsp; 'p'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;=> $story_one,&nbsp; 'posts_per_page' => 1);这应该会让你得到你想要的结果。祝你好运!
随时随地看视频慕课网APP
我要回答