下面是我的代码工作得很好,但问题是html标记没有出现。。如等。。。不知道为什么。。。
<?php $recent = new WP_Query("page_id=2"); while($recent->have_posts()) : $recent->the_post();?>
<?php
echo substr(get_the_excerpt(), 0,450);
?>
<a href="<?php the_permalink() ?>" rel="bookmark">
More About Us
</a>
下面是另一段代码,它是html标记,一切正常。。但我不知道怎么在那里做permalink。。我放在那里的permalink我不工作。
<?php
$my_id = 2;
$page_id = get_post($my_id);
$content = $page_id->post_content;
echo substr($content, 0, 450);
?>
<a href="<?php the_permalink() ?>" >More About Us</a>
还有什么是获得特定页面内容的最佳方式,如bellow方式
<h2>title</h2>
<div>featured image </div>
<div>content</div>
<a href="<?php the_permalink() ?>" rel="bookmark">
最合适的回答,由SO网友:Stephen Harris 整理而成
而不是打电话WP_Query()
您可以使用get_post()
并“设置”global $post
. 这可能比@tf的答案更有效一点,尽管想法大体相同。
请注意,在这两种情况下,您都应该在事后重置post数据
/**
* Display the post content. Optionally allows post ID to be passed
* @uses the_content()
*
* @param int $id Optional. Post ID.
* @param string $more_link_text Optional. Content for when there is more text.
* @param bool $stripteaser Optional. Strip teaser content before the more text. Default is false.
*/
function sh_the_content_by_id( $post_id=0, $more_link_text = null, $stripteaser = false ){
global $post;
$post = &get_post($post_id);
setup_postdata( $post, $more_link_text, $stripteaser );
the_content();
wp_reset_postdata();
}
资料来源:
http://stephenharris.info/get-post-content-by-id/