从非管理员中删除WordPress配置文件字段

时间:2018-06-27 作者:csandreas1

我想删除Display name publicly as WordPress编辑配置文件页面中非管理员的选项。这怎么可能?

enter image description here

if ( ! current_user_can(\'manage_options\') ) {
#remove the above
}
此外,如何从订阅者编辑其配置文件时删除该功能?

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

如果您不想让用户对他们不必输入的信息感到困惑,那么最好删除这些信息。我的意思是删除它们,因为隐藏不是一个选项,它涉及到CSS或JS解决方案,使这些字段和标题在页面加载后消失,这意味着用户可以看到字段中的一些闪烁。

如何删除没有JS的WordPress管理配置文件页面字段(包括个人选项、传记信息、网站等)和标题。只需将其复制并粘贴到函数中即可。php文件:

    <?php
    // Remove fields from Admin profile page
    if ( ! function_exists( \'cor_remove_personal_options\' ) ) {
        function cor_remove_personal_options( $subject ) {

            $subject = preg_replace(\'#<tr class="user-display-name-wrap(.*?)</tr>#s\', \'\', $subject, 1); // Remove the "Display name publicly as" field
            return $subject;
        }

        function cor_profile_subject_start() {
            if ( ! current_user_can(\'manage_options\') ) {
                ob_start( \'cor_remove_personal_options\' );
            }
        }

        function cor_profile_subject_end() {
            if ( ! current_user_can(\'manage_options\') ) {
                ob_end_flush();
            }
        }
    }
    add_action( \'admin_head\', \'cor_profile_subject_start\' );
    add_action( \'admin_footer\', \'cor_profile_subject_end\' );
所以这就完成了,并从管理配置文件页面中删除了字段。

但如果您不想删除这样的昵称字段,因为它是必需的。因此,您可以将解决方案与JS结合使用,如下所示:

    <?php 

    //Remove fields from Admin profile page via JS to hide nickname field which is mandatory
    function remove_personal_options(){
        if ( ! current_user_can(\'manage_options\') ) { // \'update_core\' may be more appropriate
            echo \'<script type="text/javascript">jQuery(document).ready(function($) {
                $(\\\'form#your-profile tr.user-nickname-wrap\\\').hide(); // Hide the "nickname" field
            });</script>\';
        }
    }
    add_action(\'admin_head\',\'remove_personal_options\');
唯一可以通过hook删除的是Admin配色方案,操作如下:

// Removes ability to change Theme color for the users
remove_action( \'admin_color_scheme_picker\', \'admin_color_scheme_picker\' );
无需使用Javascript隐藏字段,只需使用上述代码并抛出不想删除的行即可。

谢谢

结束

相关推荐

创建自定义php页面并将其加载到特定的插件

我和一个客户有一个痛苦的问题。他们需要从远程端点将提要加载到符合WordPress模板设计的页面中。。他们还希望在特定URL处显示页面例如myclient.com/we-want-it-here 我创建了加载提要的页面,可以包含页眉和页脚,,<?php define(\'WP_USE_THEMES\', false); require(\'path/to/my-wordpress-dir/wp-blog-header.php\'); get_