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変数に格納されている1つの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に追加します

/* スラッグでページを取得 */

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 に答える