Wordpress作者框控制功能

时间:2016-01-15 18:44:34

标签: php css wordpress function genesis

朋友你好,                我在Wordpress中需要一些帮助。我试图隐藏仅针对特定用户的帖子下显示的作者框。

如果我正在调查的帖子是由admin发布的,那么我想在admin发布的帖子内容下隐藏作者框,但是应该为所有其他用户显示?我尝试了不同的功能,但没有成功。

我想完全隐藏作者框,我知道可以用css代码完成

.author-box { display:none;}

但是这隐藏了完成它们的整个创作工具箱,我只是想在admin发布的帖子上隐藏作者框?

我正在使用genesis框架,所以如果您有任何帮助,请提出建议。

由于

1 个答案:

答案 0 :(得分:0)

在主题的functions.php文件中,添加以下内容:

function remove_my_post_metabox() {
    global $post;
    // If the post author ID is 1, then remove the meta box
    // You would need to find the ID of the author, then put it in place of the 1
    if ( $post->post_author == 1) {
        remove_meta_box( 'authordiv','post','normal' ); // Author Metabox
    }
}

add_action( 'add_meta_boxes', 'remove_my_post_metabox' );

如果您需要找出作者的角色,并根据角色(例如管理员)真正做到这一点,那么它会更像是这样:

function remove_my_post_metabox() {
    global $post;

    // If there's no author for the post, get out!
    if ( ! $post->post_author) {
        return;
    }

    // Load the user
    $user = new WP_User( $post->post_author );
    // Set "admin" flag
    $is_admin = FALSE;

    // Check the user roles
    if ( !empty( $user->roles ) && is_array( $user->roles ) ) {
        foreach ( $user->roles as $role ) {
            if ( $role == 'administrator' ) {
                $is_admin = TRUE;
            }
        }
    }

    // Lastly, if they ARE an admin, remove the metabox
    if ( $is_admin ) {
        remove_meta_box( 'authordiv','post','normal' ); // Author Metabox
    }
}

add_action( 'add_meta_boxes', 'remove_my_post_metabox' );