Comment modifier un texte dynamiquement dans WordPress avec PHP ?

Un filtre PHP simple pour remplacer n'importe quel texte affiché sur votre site WordPress, sans toucher aux fichiers du thème. À coller dans functions.php.

Problème : vous devez modifier un texte dans WordPress mais ne trouvez pas où le changer, ou c’est tout simplement impossible via les options du thème.

L’extrait ci-dessous vous permet de remplacer n’importe quel texte dynamiquement avec PHP.

  1. Copiez l’extrait dans functions.php.
  2. Remplacez ORIGINALTEXT par le texte à modifier sur votre site.
  3. Remplacez New Text par ce que vous voulez et enregistrez.
  4. Important : le texte est sensible à la casse.

Cette méthode agit sur le HTML rendu par PHP. Elle ne touche donc pas un texte réinjecté ensuite par un appel AJAX, comme les libellés de livraison WooCommerce : dans ce cas, il faut repasser après l’appel, avec la méthode décrite dans exécuter du jQuery après un appel AJAX. Et pour insérer un shortcode dans un fichier de template plutôt que remplacer du texte, voyez afficher un shortcode dans un template.

function start_modify_html() {
  ob_start();
}

function end_modify_html() {
  $html = ob_get_clean();
  $html = str_replace( 'ORIGINALTEXT', 'New Text', $html );
  $html = str_replace( 'originaltext', 'New Text', $html );

  echo $html;
}

add_action( 'wp_head', 'start_modify_html' );
add_action( 'wp_footer', 'end_modify_html' );