如果您不想让用户对他们不必输入的信息感到困惑,那么最好删除这些信息。我的意思是删除它们,因为隐藏不是一个选项,它涉及到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隐藏字段,只需使用上述代码并抛出不想删除的行即可。
谢谢