1

目前我对 wordpress 有一个非常特殊的问题。我是 WordPress 的新手,这也许是我发现它在代码结构方面有点混乱的原因,但我很欣赏我们可以在平台上在线找到的大量信息。

找了好几个论坛,终于找到了一段代码,可以根据首页的具体分类加载帖子:

声明#1

<?php if(is_home()) {
query_posts('cat=6,9&&showposts=7');
}
if (have_posts()) : while (have_posts()) : the_post();
get_template_part( 'loop', 'index' );
endwhile; ?>

这可以正常工作,但是发生了一件非常奇怪的事情。在我的 sidebar.php 模板中,我有一个主页的条件代码,它显示了一个包含一些内容的画布。我希望它只显示在主页上,因此这就是我的做法:

声明#2

<?php if(is_home()):?>
<div id="portrait_image">
<div class="container">
<canvas id="panel" width="370" height="175"></canvas>
</div>
</div>
<?php endif;?>

这也可以正常工作,除了当我添加if(is_home)上面的第一条语句时,似乎if(is_home)出于某种原因禁用了第二条语句。我在这个问题上挠了好几个小时,还注意到如果我将第二个语句放在第一个语句之上,它会突然起作用。

但后来我发现了更奇怪的事情。如果我cat=6,9&&从语句 #1 中删除,则 #2 有效。如果您在 sidebar.php 模板内的主页中,我看不出调用不同的帖子类别会阻碍条件语句的逻辑,该语句仅调用画布。

有没有人遇到过这个奇怪的问题,我的语法是错误的还是可以指出我解决它的方向?

提前致谢!

4

1 回答 1

0

我的 sidebar.php 也有类似的问题。

秒前调用wp_reset_query函数if(is_home)

<?php wp_reset_query(); ?>

来自 Codex WordPress:

wp_reset_query() 将 $wp_query 和全局 post 数据恢复到原始主查询。

我还发现这篇博客文章详细描述了这个功能。

看来作者也有和你类似的问题。

于 2013-04-08T16:48:22.707 回答