有什么理由不让其他主题元素(如导航菜单)出现在循环中吗?

时间:2013-01-07 作者:sanjaypoyzer

只是想知道在posts循环中的每个页面上放置诸如导航菜单、甚至页脚内容等主题元素是否有什么特别错误。(<?php while ( have_posts() ) : the_post() ?> )

显然,对于大多数主题来说,帖子有自己的div并在其中加入循环是有意义的,但我只是想知道这是否是一个实际的限制。

2 个回复
SO网友:Chip Bennett

唯一应该放在循环内部的东西是那些应该由循环为每个帖子输出的东西。

为循环中的每个帖子显示站点标题有意义吗?当然不是。因此,它应该在循环外部输出。

为循环中的每个帖子显示帖子标题有意义吗?嗯,是的。这就是为什么<?php the_title(); ?> 被称为循环内部,而不是循环外部。

为循环中的每个帖子显示导航菜单有意义吗?不是一般情况,不是(尽管几乎所有东西都有罕见的边缘情况)。

为循环中的每个帖子显示网站页脚内容有意义吗?我可以肯定地说,不是,这样做会破坏呈现页面的HTML标记。

在回复中编辑:此注释:

。。。比如说,你想把meta post信息放在导航栏中?

您可以简单地利用is_single() 条件模板标记,位于导航栏中。

<?php
// Inside your navbar
if ( is_single() ) {
    // This is a single blog post page; display something
    global $post;
    $post_meta = get_post_meta( $post->ID, ... ); // etc.
}
?>
这是因为,在单个post视图的上下文中,您基本上可以访问单个$post 对象,甚至在循环之外。

SO网友:s_ha_dum

如果您在存档页上执行此操作,您将获得大量重复,如果其中一个元素发生更改或覆盖,您可能会遇到问题$wp_query$post 或者其他任何事情都可以保持页面结构的整洁和逻辑性。你问的是“把内裤穿在裤子上有什么问题吗?”好吧,你可能会让它发挥作用,但这很奇怪,你的内衣不再起作用了,你的朋友和家人可能会开始神秘地传递用餐邀请。

结束

相关推荐

Multiple Loops Homepage?

WebDesignerDepot最近的重新设计给我留下了深刻的印象,我对他们主页的机制很好奇。我喜欢他们的特色帖子部分打破了页面的单调,但我还没有想出如何在我自己的设计中加入类似的东西。我猜他们正在使用多个循环,看起来就像[按时间顺序排列的主循环]-->[自定义循环]-->[按时间顺序排列的主循环]。如何中断到自定义循环中,然后继续在主循环中中断的位置?