2

我试图让特定的帖子显示在 single.php 页面中,但是由于某种原因,我显示了所有帖子。我不确定我是否正确获得了帖子 ID,但这是我目前的做法:

    <?php
    $post_id = (int) $_GET['p'];
    query_posts('p=' . $post_id);
    while(have_posts()) 
    { 
        $this_page = the_post();
        echo the_content();
    } 
    ?>

它应该只显示存储在 $post_id 变量中的具有一个 id 的帖子,但由于某种原因它正在获取所有这些;/

4

3 回答 3

3

不确定这是否是您要查找的内容,但我知道您想在 single.php 上显示特定页面

为什么不使用这个:

<?php 
  $page_id = get_ID_by_slug('my_page_slug');
  $page_data = get_page( $page_id );
?> 

<h2><?php echo $page_data->post_title; ?></h2>
<p><?php echo $page_data->post_content; ?></p>    

并将其添加到您的functions.php

/* 通过 slug 获取页面 */

function get_ID_by_slug($page_slug) {
  $page = get_page_by_path($page_slug);
  if ($page) {
    return $page->ID;
  } else {
    return null;
  }
}
于 2013-02-28T09:54:10.877 回答
2

您是否尝试过从 URL 中获取帖子 ID?

<?php
   $post_id = (int) $_GET['p'];
   query_posts('p=' . $post_id);
?>

或者,这也可能有效:

<?php get_post($post_id); ?>
于 2013-02-24T14:46:48.060 回答
1

丑陋的方式:

query_posts('p=11');

query_posts改变主查询)

不那么丑陋的方式:

$my_query = new WP_Query('p=11');
while($my_query->have_posts()){
  $my_query->the_post();
  the_content();
}
于 2013-02-24T14:46:33.823 回答