最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

post body class for current user only if they are the post author

programmeradmin0浏览0评论

I'm trying to find a way to add a body class "author" IF the current user is the author of the post they are viewing.

This is what I have so far...

add_filter( 'body_class','my_body_classes' );
function my_body_classes( $classes ) {

    if ( !$current_user->ID == $post->post_author ) {

        $classes[] = 'post-author';

    }

    return $classes;

}

I'm trying to find a way to add a body class "author" IF the current user is the author of the post they are viewing.

This is what I have so far...

add_filter( 'body_class','my_body_classes' );
function my_body_classes( $classes ) {

    if ( !$current_user->ID == $post->post_author ) {

        $classes[] = 'post-author';

    }

    return $classes;

}
Share Improve this question asked Jul 27, 2019 at 6:58 PetePete 1,0582 gold badges14 silver badges40 bronze badges 1
  • 1 You have wrong if expression. Comparison Operators – Max Yudin Commented Jul 27, 2019 at 7:31
Add a comment  | 

1 Answer 1

Reset to default 1

The code isn't working because you haven't defined or retrieved the $current_user or $post variables from anyway. You've also got a ! here for some reason: !$current_user->ID, which will just break the condition.

You need to use the appropriate functions to get their values, and also use is_single() to make sure you're viewing a single post (otherwise the post author could be missing or something unexpected).

add_filter(
    'body_class',
    function( $classes ) {
        if ( is_single() ) {
            $post = get_queried_object();
            $user = wp_get_current_user();

            if ( $user->ID == $post->post_author ) {
                $classes[] = 'post-author';
            }
        }

        return $classes;
    }
);
发布评论

评论列表(0)

  1. 暂无评论