我正在尝试将特定帖子显示在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变量中的帖子,但由于某种原因它会得到所有这些; /
答案 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();
}