我有一个典型的WordPress页面(page.php):
<?php the_post(); ?>
<div id="rightcol">
<div <?php post_class(); ?>>
<?php the_content(); ?>
</div>
所有工程良好;在页面内容中有一些短代码,
[库]。
因此,我在页面中添加了一个简单的循环,以显示给定类别中的随机帖子:
<?php query_posts(\'category_name=interesting_sites&posts_per_page=3&orderby=rand\'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div <?php post_class(); ?>>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
然后,页面内容中的短代码将失败!为什么会发生这种情况?有什么想法吗?
最合适的回答,由SO网友:Bainternet 整理而成
你真的不应该用query_posts()
对于该页面的主循环以外的任何内容,请使用WP_Query()
或get_posts()
, 尝试以下操作:
$my_query = new WP_Query(
array(
\'category_name\' => \'interesting_sites\',
\'posts_per_page\' => 3,
\'orderby\' => \'rand\'
)
);
while ($my_query->have_posts()){
$my_query->the_post();
?>
<div <?php post_class(); ?>>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
</div>
<?php
}
wp_reset_postdata();