在Wordpress页面上显示特定帖子

时间:2013-02-24 14:42:11

标签: php wordpress post wordpress-theming

我正在尝试将特定帖子显示在single.php页面中,但出于某种原因,我会显示所有帖子。我不确定我是否正确地获得了帖子ID,但这是我现在这样做的方式:

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

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

3 个答案:

答案 0 :(得分:2)

您是否尝试从网址抓取帖子ID?

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

或者,这也可能有效:

<?php get_post($post_id); ?>

答案 1 :(得分:2)

不确定这是否是您要找的,但我知道您想在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;
  }
}

答案 2 :(得分: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();
}