Il n'y a pas de hook dédié - la gestion des utilisateurs est une priorité faible dans WordPress. Vous devez utiliser la mise en mémoire tampon de sortie (oui, pas sympa).
Voici une démonstration simple de la façon dont cela pourrait être fait:
add_action( 'personal_options', array ( 'T5_Hide_Profile_Bio_Box', 'start' ) );
/**
* Captures the part with the biobox in an output buffer and removes it.
*
* @author Thomas Scholz, <[email protected]>
*
*/
class T5_Hide_Profile_Bio_Box
{
/**
* Called on 'personal_options'.
*
* @return void
*/
public static function start()
{
$action = ( IS_PROFILE_PAGE ? 'show' : 'edit' ) . '_user_profile';
add_action( $action, array ( __CLASS__, 'stop' ) );
ob_start();
}
/**
* Strips the bio box from the buffered content.
*
* @return void
*/
public static function stop()
{
$html = ob_get_contents();
ob_end_clean();
// remove the headline
$headline = __( IS_PROFILE_PAGE ? 'About Yourself' : 'About the user' );
$html = str_replace( '<h2>' . $headline . '</h2>', '', $html );
// remove the table row
$html = preg_replace( '~<tr>\s*<th><label for="description".*</tr>~imsUu', '', $html );
print $html;
}
}
Vous pouvez télécharger le code en tant que plugin autonome: Plugin Remove Bio Box .
Avant
Après
Les champs de mot de passe sont maintenant sous Contact Info … si vous n'aimez pas cela, ajoutez un titre stop()
- et faites attention à I18n. ;)
IS_PROFILE_PAGE
constante :)<h3>
c'est<h2>
maintenant. J'ai corrigé le code.Depuis le récent changement de classe, cela fonctionne:
la source
$headline = __( IS_PROFILE_PAGE ? 'About Yourself' : 'About the user' )
en ceci$headline = ( IS_PROFILE_PAGE ? __('About Yourself') : __('About the user' ));
<h2>
baliseSur la base des réponses précédentes, voici ce que j'utilise pour supprimer les parties de la page utilisateur dont je ne veux pas:
Cela dépend toujours de la structure du HTML, mais cela fonctionne pour moi.
la source
La solution la plus simple et la plus légère consiste à utiliser CSS pour simplement le masquer à la vue.
la source
Si vous ajoutez le code ci-dessous à votre fichier functions.php, il supprimera la section bio pour toutes les langues d'un site multilingue:
la source