因此,我显示了3种不同的布局类型,一种用于页面,一种用于帖子(博客、归档、标签、搜索等)一个用于单桩。
最初,我是用这个来决定我是否在显示帖子的页面上:
if ( is_home() ||
is_category() ||
is_tag() ||
is_archive() ||
is_tax() ||
is_author() ||
is_date() ||
is_search() ||
is_attachment() ) :
虽然不漂亮,但它涵盖了一切。
我的问题是,这实际上是一样的,但更干净吗?
if ( ! is_page() && ! is_single() ) :
这是否涵盖了第一段代码中的所有内容?我是否遗漏了一些明显的东西,这些东西会导致这项工作无法按预期进行?
我认为它也有同样的作用,但我也想在社区中宣传这一点。
谢谢
EDIT - 以下是我现在拥有的:
// Set up the layout variable for pages
$layout = $generate_settings[\'layout_setting\'];
// If we\'re on the single post page
if ( is_single() ) :
$layout = null;
$layout = $generate_settings[\'single_layout_setting\'];
endif;
// If we\'re on the blog, archive, attachment etc..
if ( is_home() || is_archive() || is_search() || is_attachment() || is_tax() ) :
$layout = null;
$layout = $generate_settings[\'blog_layout_setting\'];
endif;
// Finally, return the layout
return apply_filters( \'generate_sidebar_layout\', $layout );
似乎工作得很好,比我原来的一组条件语句更简洁。
我找不到任何证据表明is\\U tax由is\\U archive()负责-我错过了吗?
谢谢
最合适的回答,由SO网友:Pieter Goosen 整理而成
两人最终都会做同样的工作。但是,您可以改进第一个代码。
is_archive()
退货true
在所有存档页上,包括以下内容
分类法存档页
分类存档页
日期存档页
作者存档页
标记存档页
因此,如果您需要针对所有这些页面,只需使用is_archive()
.
另一个注释
is_single()
在以下情况下返回true
is_attachment()
return true作为附件也是一篇文章。因此,当您在附件页和普通单页上需要一些不同的内容时,使用第二块代码时要小心
总的来说,在您的实现中,有几点我没有理解。您可以使用正确的模板执行所需的操作。您不需要条件
看看Template Hierarchy, 然后看看你需要实现什么。您只需要4个模板
页面-创建page.php
对于主页、存档和搜索页面,请创建index.php
. index.php
如果自定义模板(如search.php
或category.php
) 不存在。所以Wordpress将使用index.php
显示主页、存档和搜索结果页面
附件请复制index.php
并将其重命名attachment.php
对于单篇文章,请创建single.php
. 这应该足够了