你在拿苹果和桔子做比较。二者都queries 执行完全相同的操作,但通过不同的代码呈现。
您的查询:
<?php
$my_postid = 663;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters(\'the_content\', $content);
$content = str_replace(\']]>\', \']]>\', $content);
echo $content;
?>
只需从数据库中提取一些内容并将其直接转储到屏幕上即可。您介绍的另一个查询示例:
<?php
// The Query
$the_query =new WP_Query(\'pagename=my-page-name\');
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<div id="my-id" class="format_text">
<h2 class="page-title"><?php the_title(); ?></h2>
<?php the_content(); endwhile; ?>
</div>
<?php
// Reset Post Data
wp_reset_postdata();
?>
也会从数据库中提取一些内容,但它会通过标准运行
WordPress loop 并向内容添加样式。它不是;保留(&Q);造型。
我的意思是,您的代码片段包含一些内容,并通过the_content
过滤,并将结果打印到屏幕上。
...
$content = apply_filters( \'the_content\', $content );
...
echo $content;
另一个代码片段做了完全相同的事情The
the_content()
函数是一组代码的包装器,这些代码从数据库中获取内容,并通过
the_content
过滤,并将结果打印到屏幕上。
...
$content = apply_filters( \'the_content\', $content );
...
echo $content;
它们的执行与您的不同之处在于使用了标准循环功能。下面是我如何重写您的代码,以便在其他代码中使用相同类型的循环函数和模板:
<?php
$my_postid = 663;
$content_post = get_post( $my_postid );
setup_postdata( $content_post ); // Set up necessary $post globals
?>
<div id="my-id" class="format_text">
<h2 class="page-title"><?php the_title(); ?></h2>
<?php the_content(); ?>
</div>
<?php
wp_reset_postdata(); // Reset $post globals to what they were before
呼叫
setup_postdata()
将填充全局
$post
所选帖子信息的变量。二者都
the_title()
和
the_content()
当他们提取信息、通过过滤器运行该全局变量并将数据打印到屏幕上时,请引用该全局变量。
呼叫wp_reset_postdata()
将重置全局$post
变量设置为在我们开始处理它之前为当前请求设置的任何值。
通常,你只需要打电话the_title()
和the_content()
从循环内部,但如果设置全局$post
提前改变,你仍然可以让他们工作。