Supprimer le html dans le titre des articles

Par défaut, WordPress autorise l’emploi de code HTML dans les titres des articles et des pages.
Mise en place sur demande de certains utilisateurs, cette fonctionnalité peut présenter plusieurs problèmes, notamment lorsque le CMS est utilisé par plusieurs utilisateurs.

Pour empêcher l’insertion de balises HTML dans les titres, une solution est d’insérer le code suivant dans le fichier functions.php de votre thème :

if (!function_exists('dfr_remove_tags_from_title')) :
  add_action( 'save_post', 'dfr_remove_tags_from_title', 10, 1);
  function dfr_remove_tags_from_title($post_id) {
    global $wpdb;

    $title = wp_strip_all_tags(get_the_title($post_id));

    $wpdb->update( $wpdb->prefix . "posts", array('post_title'=>$title), array('ID'=>post_id));
  }
endif;

Au moment où l’article est sauvé dans l’interface d’administration, notre fonction remove_tags_from_title() est appelée. Elle prend en compte un paramètre : l’id du post que l’on va sauvegarder en base de donnée.

On récupère ensuite le titre de cet article, et on lui applique une fonction interne à WordPress : wp_strip_all_tags(), inspirée de la fonction PHP native strip_tags(). Cette fonction retire purement et simplement toutes les balises HTML, mais aussi le code PHP, le JavaScript et le CSS inline, pour ne conserver que le texte.

Il n’y a pas de page d’explications sur cette fonction dans le Codex WordPress, mais vous pourrez en savoir plus sur w4dev.

Cet article a été publié dans WordPress par . Mettez-le en favori avec son permalien.

Une réflexion au sujet de « Supprimer le html dans le titre des articles »

  1. Ping : WordPress : Générer un extrait automatique pour chaque article - Diije

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>