通过ID获取页面并将其显示在另一个页面上

时间:2021-03-29 作者:Dejan Dozet

我想在另一个页面的特定位置显示ID=1149的页面。为此,我尝试了以下方法:

    <div class="col-md-4 sidebarl"> 
      <?php
      $args = array(
          \'post_type\' => \'page\',
          \'post__in\' => array(1149)
      );
      $query = new WP_Query($args);
      while ($query->have_posts()) {
        $query->the_post();
      }
      ?>
    </div>
但我什么都没有得到,一页空白。我错过什么了吗?

3 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

我没有得到任何东西,一页空白。我错过什么了吗?

是的,你是。

$query->the_post() 不显示任何内容-它只移动posts数组中的指针/键($query->posts) 并设置全局post数据($GLOBALS[\'post\']). 所以是的,作为对你答案的回应,the_content() 将用于在循环中显示当前帖子的内容。

但实际上,您可以简单地使用page_id parameter 如是,要查询page 类型并具有特定ID:

$args = array(
    // Instead of using post_type and post__in, you could simply do:
    \'page_id\' => 1149,
);
还有,你应该打电话wp_reset_postdata() 循环结束后,模板标记(例如。the_content()the_title()) 将再次使用主查询的当前帖子。

while ($query->have_posts()) {
    $query->the_post();
    the_content();
}

wp_reset_postdata();
为了让你知道,你也可以get_post()setup_postdata() 就像这样,无需使用new WP_Query() 方式:

//global $post; // uncomment if necessary
$post = get_post( 1149 );
setup_postdata( $post );
the_title();
the_content();
// ... etc.

wp_reset_postdata();

SO网友:Dejan Dozet

我不确定这是否是正确的答案,但我是这样做的:

    <div class="col-md-4 sidebarl"> 
      <?php
      $args = array(
          \'post_type\' => \'page\',
          \'post__in\' => array(1149)
      );
      $query = new WP_Query($args);
      while ($query->have_posts()) {
        $query->the_post();
        the_content();
      }
      ?>
    </div>

SO网友:Nikolay

您可以尝试使用函数;获取\\u template\\u part();。但要做到这一点,您需要为当前页面创建一个php模板,为第1149页创建一个php模板。然后,在当前页面模板中,包括另一个模板:

/**
 * Template Name: My current page template
 * Template Post Type: page
 */
<?php get_header(); ?>
<?php the_content(); ?>
...
<?php
  /* include template from page 1149 */
  get_template_part( \'page-1149\' ); 
?>
...

https://developer.wordpress.org/reference/functions/get_template_part/

相关推荐

AJAX and custom pages

我有一个自定义页面,我正在使用该页面,用户可以转录存档文档并将其上载到关系数据库(用于历史研究)。我目前正在尝试添加一个功能,以便他们可以选择他们正在转录的报告的照片(已上载到媒体库),以便在研究人员查看报告时显示。我跟着https://dobsondev.com/2015/01/23/using-the-wordpress-media-uploader/ 本教程几乎完全复制了代码,除了使用https://www.smashingmagazine.com/2011/10/how-to-use-ajax-i