【问题标题】:Adding custom body class to the custom archive pages将自定义正文类添加到自定义存档页面
【发布时间】:2022-01-10 17:36:09
【问题描述】:

我创建了两个自定义存档页面:archive-one.phparchive-two.php。存档页面放置在我的主题的主目录中。现在我要做的是为每个人添加一个自定义正文类,例如“archive-one”和“archive-two”。

我试图用以下代码做到这一点,但没有运气:

function archive_class_1( $classes ) {
    if ( is_page_template( 'archive-one.php' ) ) {
        $classes[] = 'archive-one';
    }
    return $classes;
}
add_filter( 'body_class', 'archive_class_1' );

【问题讨论】:

    标签: php wordpress wordpress-theming custom-wordpress-pages wordpress-shortcode


    【解决方案1】:

    确认这已添加到您的主题functions.php?接下来,您可以对两个自定义存档文件使用相同的功能(请参见下面的示例)。您的自定义模板文件是位于主题的根目录还是子文件夹?如果在子文件夹中,您需要将该路径添加到您的检查中,如下例所示。还要确认您的主题在打开 <body> 标记(类似于 <body <?php body_class(); ?>>)的主题上使用了 <?php body_class(); ?> 函数?

    主题根目录下的自定义文件

    function my_archive_class( $classes ) {
        if ( is_page_template( 'archive-one.php' ) ) {
            $classes[] = 'archive-one';
        }
    
        if ( is_page_template( 'archive-two.php' ) ) {
            $classes[] = 'archive-two';
        }
        return $classes;
    }
    add_filter( 'body_class', 'my_archive_class' );
    

    子文件夹“模板”主题中的自定义文件

    function my_archive_class( $classes ) {
        if ( is_page_template( 'templates/archive-one.php' ) ) {
            $classes[] = 'archive-one';
        }
    
        if ( is_page_template( 'archive-two.php' ) ) {
            $classes[] = 'templates/archive-two';
        }
        return $classes;
    }
    add_filter( 'body_class', 'my_archive_class' );
    

    【讨论】:

    • 是的,它在模板根目录中。是的,我使用<body <?php body_class(); ?>>。我已经添加了您的代码,但看不到任何结果。仍然正文类只是“博客登录 hfeed 无侧边栏”。我正在 underscores.me 主题启动器上构建我的模板。
    • 我不确定这段代码是否也适用于存档页面。它仅适用于页面模板文件恕我直言。 ://
    • 哦,我错过了“存档”特定部分....这些自定义存档是用于自定义帖子类型吗?
    • 不,我使用这个模板来显示特定类别的页面。
    • 您确定正在使用您的自定义存档页面吗?你能补充一些关于他们如何代替标准archive.php的细节吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多