使用自定义字段向Body标记添加自定义类

时间:2015-08-05 作者:AndrewL64

在某些帖子中,我想使用自定义字段手动附加自定义body类。

当某个自定义字段添加到帖子中时,如何将类附加到body标记?

我尝试了以下方法,但自定义字段名称tagbody 下拉列表中未显示:

add_filter( \'body_tag\', \'body_tag_name\' );
add_filter( \'get_the_body_tag_name\', \'body_tag_name\' );

function body_tag_name( $name ) {
    global $post;

    $btag = get_post_meta( $post->ID, \'tagbody\', true );

    if ( $btag )
        $name = $btag;

    return $name;
}

1 个回复
SO网友:Emetrop

您要使用body_class 滤器

function prefix_add_body_class( $classes ) {
    global $post;

    // good to check
    if( ! is_single() || \'post\' !== get_post_type() ) {
        return $classes;
    }

    $btag = get_post_meta( $post->ID, \'tagbody\', true );

    if ( empty( $btag ) ) {
        return $classes;
    }

    $classes[] = $btag;

    return $classes;
}
add_filter( \'body_class\', \'prefix_add_body_class\' )
编辑:

你在评论中写道,主题是你自己的主题。所以你不需要通过过滤器来完成。只要在你的主题中做对就行了。

编辑标题。像这样的php文件。

// some code above
$classes = array();

if( is_single() && \'post\' === get_post_type() ) {
    $btag = get_post_meta( $post->ID, \'tagbody\', true );

    if( ! empty( $btag ) ) {
        $classes[] = $btag;
    }
}
?>
<body <?php body_class( $classes ); ?>>
<?php
// some code below

结束

相关推荐

将旧页面重写添加到WordPress(删除.php)

我有一个WordPress网站,有4个旧的。php页面仍按原样运行。我的问题是以前有一个重写规则来删除。php从URL获取干净的URL。我尝试在中的WordPress代码上下添加相同的规则。htaccess,但它会给出一个重定向循环。# remove .php extension RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.*?)/?$ $1.ph