仅当默认发布类型为存档时的条件

时间:2013-09-14 作者:gurung

为了优化我的站点以获得更快的加载速度,我想将几个脚本排队到归档文件中,以获得默认的帖子类型。下面给出了一个粗略的例子。

function my_theme_script_enqueues() {

        if (!is_admin()) {

            if ( is_archive()) {
                wp_register_script(\'isotope\', get_template_directory_uri() . \'/js/jquery.isotope.min.js\', \'jquery\');
                wp_enqueue_script(\'isotope\');
            }
        }
    }

add_action (blah..blah..blah..blah)
我假设类似(is\\u archive(\'post\')的东西可以工作,但它仍然会加载到cpt归档和标记归档等(但不会加载到页面上)。

我不能使用(is_archive()) 因为它再次将其加载到其他所有归档类型,例如cpt归档、标签等,这对我来说毫无意义。

如果我使用If(!is_post_type_archive(\'cpt\')) {...} 然后,它显然变得疯狂,并将其加载到其他任何地方,而不是可扩展的。

我知道如何使用if( is_post_type_archive(\'post\')) {...}, 但它并没有给我任何结果,我应该猜测“post”是一种post类型,对吗?当我在这里搜索解决方案时,大多数帖子都在谈论自定义帖子类型归档。请让我知道我的选择是什么?

3 个回复
最合适的回答,由SO网友:cybmeta 整理而成

is_archive() 不接受任何参数,并为每个存档页返回true:类别、标记、日期、作者等。。。。我想你需要检查一下category page (在分类分类法的存档中)或在博客主页中:

if ( is_category() || is_home() ) {
    wp_register_script(\'isotope\', get_template_directory_uri() . \'/js/jquery.isotope.min.js\', \'jquery\');
    wp_enqueue_script(\'isotope\');
 }

SO网友:Rarst

您可能正在寻找is_home().

由于历史原因,这是不一致的。直到有了可供存档的自定义帖子类型之后,帖子类型存档的概念才出现。

博客帖子的基本索引列表是is_home() 令人困惑的是is_archive().

SO网友:Ethan C

我最终通过Google找到了一个使用默认post 岗位类型。以下是如何做到这一点:

根据@Rarst的回答,is_archive() 不起作用,因为它遗漏了满足is_home() 条件根据问题本身,is_archive() 在这种情况下也会失败,因为它对CPT归档返回true。

这应该可以:

if(get_post_type() == \'post\' && !is_single()) {
    ...
}
get_post_type 将返回post 对于;“发布页面”;或查询post post类型,然后!is_single() 将跳过单个端点。

结束

相关推荐

显示Archives.php中的所有自定义帖子类型

我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W