您的帖子无法正确显示的原因是the_title()
, the_permalink()
, 和the_content()
(已调用Template Tags ) 只能在内部使用"The Loop" 或者只要设置正确。有两个选项可以正确显示您的内容:
Functions: get_post()
, setup_postdata()
and wp_reset_postdata()
首先,需要获取WP\\u Post对象并将其传递到
setup_postdata()
功能,以便WordPress可以设置模板标记以提取正确的内容。最后,我们需要重置
global $post
通过调用
wp_reset_postdata()
.
global $post; // Get the current WP_Post object.
$post = get_post( 129 ); // Get our Post Object.
setup_postdata( $post ); // Setup our template tags.
if( \'publish\' == $post->post_status ) {
the_content();
}
wp_rest_postdata(); // Reset the global WP_Post object.
Tad Easier using apply_filters()
这有点直截了当,不需要太多代码,这很好。您将无法像上面的示例中那样访问模板标记,但如果您只是显示帖子内容并处理其短代码,则不需要模板标记。
$post_id = 129;
if( \'publish\' == get_post_status( $post_id ) ) {
$post_content = get_post_field( \'post_content\', $post_id );
echo apply_filters( \'the_content\', $post_content );
}
以上内容从数据库中获取,然后通过WordPress过滤器运行,该过滤器处理
the_content()
钩子为我们提供所需的输出、已处理的短代码以及所有内容。