Answers:
get_page()
用来返回$post
静态页面的对象:$page_id = 302;
$page_object = get_page( $page_id );
echo $page_object->post_content;
同样,您可以使用get_post()
返回$post
帖子的对象:
$post_id = 302;
$post_object = get_post( $post_id );
echo $post_object->post_content;
setup_postdata( $post );
首先使用,之后再使用the_content();
apply_filters( 'the_content', $post_object->post_content );
如果您的内容包含简码,则应使用:
$post_id = 22;
$post_object = get_post( $post_id );
echo do_shortcode( $post_object->post_content );
为了完整起见,以蒂姆的上述评论为基础,并受斯蒂芬·哈里斯(Stephen Harris)的文章的启发,支持使用的解决方案the_content()
是:
$post_id = 302;
global $post;
$post = get_post($post_id);
setup_postdata( $post );
the_content();
wp_reset_postdata( $post );
因此,将应用过滤器(将插入段落等),并且可以使用简码。
您可以使用该get_post_data()
函数在循环外获取帖子。将此代码放在functions.php中
function get_post_data($postId) {
global $wpdb;
return $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID=$postId");
}
然后添加此代码段以对流程进行更多控制
<?php $data = get_post_data(302);
echo $data->post_date; // post date
echo $data->post_title; // post title
echo $data->post_content; // post content
echo $data->comment_count; // comments number
?>
如前所述,您可以将解决方案与get_post
和一起使用$post_object->post_content
,但不要忘记在使用该post对象之前添加检查:
function get_post_content( $post_id = null ) {
$post_object = get_post( $post_id );
if ( ! $post_object ) { return ''; }
//else
return apply_filters('the_content', $post_object->post_content);
}
echo get_post_content( $other_post_id );
您可以简单地调用get_the_content(postId)
<?php echo get_the_content($postId); ?>
使用wp_reset_postdata();
它会起作用..(编辑)
<?php
$args = array(
'post_type' => 'posttype',
'p' => 'post_id'
);
$the_query = new WP_Query( $args );
if( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif;
wp_reset_postdata();
?>
posttype可以是“ post”,“ page”或您的自定义帖子类型。这里p = 302是您的帖子ID。希望它能起作用。
query_posts
除非需要中断页面功能,否则不要使用。始终使用WP_Query
或get_posts
进行自定义查询:-)
pre_get_posts
过滤器和the_post
。这么多细节。
您可以将内容放在类别X中,并在之前使用query_post,如下所示:
<?php query_posts('cat=X&showposts=1'); ?>
<?php while (have_posts()) : the_post(); ?>
<?= get_the_content(); ?>
<?php endwhile; ?>
get_queried_object_id()
!developer.wordpress.org/reference/classes/wp_query/…–