为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
三国纷争 2022-10-22 15:44:18
我正在尝试通过 ID检索单个帖子。Stories是我的自定义帖子类型,它目前有三个帖子:博客 1 (ID: 1)博客 2 (ID: 14)博客 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)的帖子中提取内容时,为什么会这样。向我展示最新博客的内容?
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

WP_Query()您可以使用代替 using ,get_post()如下所示:


<?php


  $post = get_post($story_one);


  if(!empty($post)):

    echo $post->post_title;

    echo get_field("field name", $story_one);

  endif;


?>

关于仅从stories帖子类型中获取。每个帖子类型都存储在同一个帖子表中,因此它们必须使用不同的帖子 ID。


第二个parameter功能get_field()是帖子ID。


查看完整回答
反对 回复 2022-10-22
?
POPMUISE

TA贡献1765条经验 获得超5个赞

帖子query_varIDp不是id


    $args = array(

      'post_type'      => 'stories',

      'p'              => $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();

    }


查看完整回答
反对 回复 2022-10-22
?
长风秋雁

TA贡献1757条经验 获得超7个赞

我建议继续使用 WP_Query。问题只是查询参数之一。


我会将“p”添加到您的 $args 变量中......就像这样......


$args = array(

  'post_type'      => 'stories',

  'p'             => $story_one,

  'posts_per_page' => 1

);

这应该会让你得到你想要的结果。


祝你好运!


查看完整回答
反对 回复 2022-10-22
  • 3 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信