当前用户只有在是帖子作者的情况下才能发布正文类

时间:2019-07-27 作者:Pete

如果当前用户是他们正在查看的帖子的作者,我试图找到一种方法来添加body类“author”。

这就是我目前所拥有的。。。

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

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

        $classes[] = \'post-author\';

    }

    return $classes;

}

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

由于尚未定义或检索$current_user$post 变量。你还有一个! 出于某种原因:!$current_user->ID, 这将打破这种状况。

您需要使用适当的函数来获取它们的值,并且还需要使用is_single() 确保您正在查看单个帖子(否则帖子作者可能会丢失或出现意外情况)。

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;
    }
);

相关推荐

Stop unauthorised file access

我正在开发一个插件,其中只有管理后端。有一个自定义角色,将在以后创建,现在它只是一个经理。我正在试图阻止所有人访问该页面,例如,如果你当前访问该链接,我会遇到一个问题,在我的情况下127.0.0.1/wp-content/plugins/my-plugin/templates/admin-settings.php 它将显示页面,但没有css,但我相信一切仍然正常。我做了一些研究,发现is_user_logged_in() 功能,但我不知道是否需要在每个文件中都包含此功能,或者是否有一个全局文件可以执行此操