Personalizar profile.php

Usando o plugin “Advanced Custom Fields”: https://wordpress.org/plugins/advanced-custom-fields/ Posso adicionar meus campos personalizados a profile.php.

Mas como faço para remover os elementos padrão do profile.php (Personal Options, Name, etc.)?

Eu sei que posso criar novos arquivos de modelo no meu tema infantil para replace o aspecto das páginas, mas não consigo encontrar como fazer isso com o profile.php.

Comecei a usar o CSS para ocultar os elementos, isso funciona, exceto os títulos que não possuem class ou ID, e não posso simplesmente esconder o formulário inteiro, pois os Campos Avançados Personalizados colocam os novos elementos dessa mesma forma.

Eu preferiria ficar longe de grandes plugins que criam contas de usuário de frente em cima do sistema existente apenas para que eu possa obter uma página de edição de perfil personalizada.

Obrigado por qualquer ajuda.

Solutions Collecting From Web of "Personalizar profile.php"

Provavelmente existem várias opções para alcançar seu objective, abaixo é uma das opções mostradas por mim.
(estas 2 funções pertencem uma à outra)

Faça sempre uma cópia de functions.php antes de começar a editar / adicionar um plugin ou outro trecho de código.

 /** * Remove fields from an user profile page for all except Administrator * * FYI {@link https://codex.wordpress.org/Function_Reference/current_user_can} * {@link https://codex.wordpress.org/Roles_and_Capabilities} * {@link https://codex.wordpress.org/Plugin_API/Action_Reference/admin_footer} * {@link https://developer.wordpress.org/reference/hooks/load-pagenow/} * * Checked with @version WordPress 4.8 */ add_action('admin_init', 'wpse273289_remove_profile_fields' ); function wpse273289_remove_profile_fields() { global $pagenow; // apply only to user profile or user edit pages if( $pagenow !=='profile.php' && $pagenow !=='user-edit.php' ) { return; } // Make it happen for all except Administrators if( current_user_can( 'manage_options' ) ) { return; } add_action( 'admin_footer', 'wpse273289_remove_profile_fields_js' ); } /** * Remove (below)selected fields on user profile * This function belongs to the wpse273289_remove_profile_fields function! * */ function wpse273289_remove_profile_fields_js() { ?>  < ?php } 

Os campos acima no script são apenas exemplos, então, ajuste-se à sua preferência.
Ambas as funções são verificadas em um sandbox local e funcionando para mim.

Nota: acima não é testado com o plugin ACF, mas isso não deve ser um problema.

Outra opção é usar css para desativar / ocultar esses elementos.

Primeiro você precisa adicionar uma function que adicionará a class do corpo com base na function do usuário:

 function your_prefix_add_admin_body_class( $classs ) { $roles = wp_get_current_user()->roles; return "$classs ".implode(' ', $roles); } add_filter( 'admin_body_class', 'your_prefix_add_admin_body_class' ); 

E adicione css personalizado ao seu administrador:

 function your_prefix_custom_css() { echo ''; } add_action('admin_head', 'your_prefix_custom_css'); 

Basta lembrar, esta não é a solução mais segura. Se o usuário sabe um pouco de css, ele pode reativá-lo.