web-dev-qa-db-fra.com

Comment supprimer automatiquement les liens de WordPress Biographical Info?

Je souhaite supprimer automatiquement tout type de lien des informations biographiques de l'auteur au lieu de le faire manuellement à chaque fois. Chaque fois qu'un utilisateur ajoute un lien dans la zone d'informations biographiques, il doit être automatiquement supprimé lors de son affichage sur le blog.

1
Sahil Umatia

Vous pouvez utiliser le crochet pre_user_description, qui filtre la description de l'utilisateur avant de l'enregistrer/la mettre à jour, pour supprimer toutes les balises indésirables.

Pour ce faire, vous pouvez utiliser la fonction wp_kses , qui supprime toutes les balises, à l'exception des balises de la liste blanche.

Les balises autorisées doivent être données sous forme de tableau associatif, où les clés sont les noms des balises et les valeurs sont un tableau d'attributs autorisés pour cette balise.

Par exemple, pour autoriser uniquement les balises <strong> et <em> (sans attributs) et la balise <h1> (avec éventuellement l'attribut class uniquement):

add_filter('pre_user_description','wpse_whitelist_tags_in_bio');
function wpse_whitelist_tags_in_bio($description){
    $bio_allowed_tags = array(
                         'strong'=>array(),
                         'em'=>array(),
                         'h1' => array(
                            'class' => array (),
                        )

    $description = wp_kses($description,$bio_allowed_tags);
    return $description;
}

wp_kses est une fonction coûteuse, elle ne devrait donc être exécutée que lorsque les données sont enregistrées et non affichées. Pour supprimer toutes les balises HTML, vous pouvez utiliser wp_strip_all_tags()

2
Stephen Harris