WordPress : des triggers pour se débarrasser de noopener et de noreferrer

WordPress : des triggers pour se débarrasser de noopener et de noreferrerJe n’aime pas que quelque chose me résiste en matière de technique informatique, même s’il m’est souvent arrivé de ne pas trouver de solutions idoines. Cette fois, concernant les valeurs noopener et noreferrer associés à l’attribut rel de la balise anchor, j’ai trouvé la solution.

La 1ère chose que vous devez faire, c’est de désactiver les extensions WordPress qui, à la manière de Nofollow for external link, ajoutent la valeur nofollow pour tous les liens externes à votre site. Et puis, vous devez créer deux triggers (déclencheurs en français) dans MySQL, soit par PhpMyAdmin si vous êtes en mutualisé ou à partir de l’interpréteur MySQL en auto-hébergé.Les déclencheurs s’exécutent dès que vous ajoutez, mettez à jour ou supprimez des enregistrements.

Le 1er concerne l’ajout de nouveaux posts et de nouvelles pages :

DELIMITER $$
DROP TRIGGER IF EXISTS before_insert_post$$
CREATE TRIGGER before_insert_post
BEFORE INSERT ON wp_posts
  FOR EACH ROW
  BEGIN
    set NEW.post_content=REPLACE(NEW.post_content,' rel="nofollow noopener noreferrer"',' rel="nofollow"');
    set NEW.post_content=REPLACE(NEW.post_content,' rel="follow noopener noreferrer"',' rel="follow"');
    set NEW.post_content=REPLACE(NEW.post_content,' rel="noopener noreferrer"',' rel="follow"');
    set NEW.post_content=REPLACE(NEW.post_content,' rel="nofollow noreferrer noopener"',' rel="nofollow"');
    set NEW.post_content=REPLACE(NEW.post_content,' rel="follow noreferrer noopener"',' rel="follow"');

  END
$$
DELIMITER ;

Le second concerne la mise à jour des billets de blogs et des pages :

DELIMITER $$
DROP TRIGGER IF EXISTS before_update_post$$
CREATE TRIGGER before_update_post
BEFORE UPDATE ON wp_posts
  FOR EACH ROW
  BEGIN
    set NEW.post_content=REPLACE(NEW.post_content,' rel="nofollow noopener noreferrer"',' rel="nofollow"');
    set NEW.post_content=REPLACE(NEW.post_content,' rel="follow noopener noreferrer"',' rel="follow"');
    set NEW.post_content=REPLACE(NEW.post_content,' rel="noopener noreferrer"',' rel="follow"');
    set NEW.post_content=REPLACE(NEW.post_content,' rel="nofollow noreferrer noopener"',' rel="nofollow"');
    set NEW.post_content=REPLACE(NEW.post_content,' rel="follow noreferrer noopener"',' rel="follow"');

  END
$$
DELIMITER ;

Lors de la mise à jour de votre CMS WordPress, pensez à vérifier que vos triggers sont toujours associés à votre table wp_posts.

SELECT 
	trigger_schema, 
	trigger_name, 
	event_manipulation
FROM 
	information_schema.TRIGGERS
WHERE
	event_object_table='wp_posts';

WordPress  / Formateur MySQL Formateur SEO Formateur WordPress MySQL SEO 

Commentaires

Pas encore de commentaire.

Laisser un commentaire

(requis)

(requis)