{
    "id": 6456,
    "date": "2026-03-09T14:07:26",
    "date_gmt": "2026-03-09T13:07:26",
    "guid": {
        "rendered": "https:\/\/wpmastertoolkit.com\/?p=6456"
    },
    "modified": "2026-03-09T14:07:28",
    "modified_gmt": "2026-03-09T13:07:28",
    "slug": "wpmastertoolkit-2-17-0-un-module-search-replace-integre-des-shortcodes-plus-puissants-et-des-correctifs-critiques",
    "status": "publish",
    "type": "post",
    "link": "https:\/\/wpmastertoolkit.com\/fr\/wpmastertoolkit-2-17-0-un-module-search-replace-integre-des-shortcodes-plus-puissants-et-des-correctifs-critiques\/",
    "title": {
        "rendered": "WPMasterToolKit 2.17.0 : un module Search Replace int\u00e9gr\u00e9, des shortcodes plus puissants et des correctifs critiques"
    },
    "content": {
        "rendered": "<p class=\"wp-block-paragraph\">La version <strong>2.17.0 de WPMasterToolKit<\/strong> est disponible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Au programme de cette mise \u00e0 jour : un nouveau module tr\u00e8s attendu pour effectuer des recherches et remplacements dans la base de donn\u00e9es WordPress, des am\u00e9liorations sur les <strong>Essentials Shortcodes<\/strong>, des \u00e9volutions pratiques sur l\u2019obfuscation des adresses e-mail, un renforcement de s\u00e9curit\u00e9 sur la pr\u00e9vention de l\u2019\u00e9num\u00e9ration des utilisateurs, ainsi qu\u2019un correctif important autour du fichier <code>.htaccess<\/code> pour \u00e9viter certains probl\u00e8mes de permaliens et d\u2019acc\u00e8s \u00e0 l\u2019API REST.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans cet article, on fait le point sur tout ce qui change dans cette version.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le gros ajout de la v2.17.0 : Search Replace in database<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La principale nouveaut\u00e9 de cette release, c\u2019est l\u2019arriv\u00e9e du module <strong>Search Replace in database<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quand on travaille sur un site WordPress, il y a \u00e9norm\u00e9ment de situations o\u00f9 il faut remplacer une valeur dans la base de donn\u00e9es :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>migration vers un nouveau nom de domaine<\/li>\n\n\n\n<li>correction d\u2019URLs apr\u00e8s un changement d\u2019environnement<\/li>\n\n\n\n<li>remplacement d\u2019une adresse e-mail<\/li>\n\n\n\n<li>nettoyage de contenus<\/li>\n\n\n\n<li>mise \u00e0 jour de cha\u00eenes de configuration<\/li>\n\n\n\n<li>modifications r\u00e9p\u00e9t\u00e9es dans plusieurs tables<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Le probl\u00e8me, c\u2019est qu\u2019un simple \u201crechercher \/ remplacer\u201d en SQL n\u2019est pas toujours suffisant, et peut m\u00eame \u00eatre risqu\u00e9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pourquoi c\u2019est d\u00e9licat sur WordPress<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sur WordPress, de nombreuses donn\u00e9es sont stock\u00e9es sous forme de <strong>donn\u00e9es s\u00e9rialis\u00e9es<\/strong>. Cela concerne notamment certaines options, m\u00e9tadonn\u00e9es ou r\u00e9glages de plugins.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans ce contexte, un remplacement SQL classique peut casser la structure des donn\u00e9es. La raison est simple : la s\u00e9rialisation repose notamment sur la longueur exacte des cha\u00eenes. Si on modifie une valeur sans reconstruire correctement la structure, on peut rendre les donn\u00e9es invalides.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est pr\u00e9cis\u00e9ment pour \u00e9viter ce genre de probl\u00e8me que le module <strong>Search Replace in database<\/strong> a \u00e9t\u00e9 con\u00e7u.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Un outil pens\u00e9 pour WordPress<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019objectif n\u2019\u00e9tait pas d\u2019ajouter un simple bouton \u201cfind and replace\u201d dans l\u2019administration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019id\u00e9e \u00e9tait de proposer un outil <strong>adapt\u00e9 \u00e0 la r\u00e9alit\u00e9 de WordPress<\/strong>, avec une logique de traitement plus s\u00fbre et plus lisible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le module permet notamment de :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>d\u00e9finir une valeur \u00e0 rechercher<\/li>\n\n\n\n<li>indiquer une valeur de remplacement<\/li>\n\n\n\n<li>s\u00e9lectionner les tables \u00e0 traiter<\/li>\n\n\n\n<li>ajuster la taille des lots de traitement<\/li>\n\n\n\n<li>choisir d\u2019inclure ou non les colonnes <code>guid<\/code><\/li>\n\n\n\n<li>lancer une simulation avant ex\u00e9cution r\u00e9elle<\/li>\n\n\n\n<li>visualiser un aper\u00e7u des changements d\u00e9tect\u00e9s<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Un mode simulation pour travailler plus sereinement<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019un des points forts de ce module, c\u2019est le <strong>dry run<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concr\u00e8tement, tu peux lancer une simulation compl\u00e8te pour voir ce qui serait modifi\u00e9, sans \u00e9crire quoi que ce soit dans la base de donn\u00e9es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est particuli\u00e8rement utile pour :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>v\u00e9rifier que la recherche cible bien les bonnes occurrences<\/li>\n\n\n\n<li>\u00e9viter un remplacement trop large<\/li>\n\n\n\n<li>estimer l\u2019impact r\u00e9el avant ex\u00e9cution<\/li>\n\n\n\n<li>s\u00e9curiser une migration ou une op\u00e9ration de maintenance<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Sur ce type de fonctionnalit\u00e9, pouvoir tester avant d\u2019\u00e9crire change vraiment le confort d\u2019utilisation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Un aper\u00e7u visuel des changements<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le module ne se contente pas de retourner un simple compteur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il affiche aussi un aper\u00e7u des modifications d\u00e9tect\u00e9es avec :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>la table concern\u00e9e<\/li>\n\n\n\n<li>l\u2019identifiant de la ligne<\/li>\n\n\n\n<li>la colonne impact\u00e9e<\/li>\n\n\n\n<li>un extrait visuel du contenu avant \/ apr\u00e8s<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ce choix am\u00e9liore la lisibilit\u00e9 et permet de valider beaucoup plus vite que le remplacement agit exactement l\u00e0 o\u00f9 il faut.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Un traitement par lots pour les bases plus volumineuses<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Autre point important : le traitement se fait <strong>par \u00e9tapes<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Au lieu de lancer une op\u00e9ration globale potentiellement lourde, le module d\u00e9coupe l\u2019ex\u00e9cution en lots. Cela permet de r\u00e9duire les risques de timeout et de mieux s\u2019adapter aux h\u00e9bergements limit\u00e9s ou aux bases de donn\u00e9es plus importantes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le param\u00e8tre <strong>Max Page Size<\/strong> permet d\u2019ailleurs d\u2019ajuster la taille de traitement si n\u00e9cessaire.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Des pr\u00e9cautions utiles sur les GUID et le siteurl<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Certaines colonnes ou options WordPress sont plus sensibles que d\u2019autres.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est notamment le cas des colonnes <code>guid<\/code>, qui ne doivent pas toujours \u00eatre remplac\u00e9es automatiquement. Le module les ignore donc par d\u00e9faut, tout en laissant la possibilit\u00e9 de les inclure pour les utilisateurs avanc\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00eame logique c\u00f4t\u00e9 <code>siteurl<\/code>, avec une gestion sp\u00e9cifique pens\u00e9e pour limiter les risques lors d\u2019une op\u00e9ration de remplacement.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Version gratuite et version Pro<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le module est disponible en gratuit, mais la <strong>version Pro<\/strong> d\u00e9bloque des usages plus avanc\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Pro, il est possible de profiter de :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>plusieurs couples recherche \/ remplacement dans une m\u00eame op\u00e9ration<\/li>\n\n\n\n<li>l\u2019utilisation des expressions r\u00e9guli\u00e8res<\/li>\n\n\n\n<li>un aper\u00e7u d\u00e9taill\u00e9 plus complet des changements<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En clair, la version gratuite permet d\u00e9j\u00e0 de couvrir de nombreux besoins, tandis que la version Pro s\u2019adresse davantage aux usages de migration, de maintenance avanc\u00e9e ou de traitement en masse.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Essentials Shortcodes : support ACF pour r\u00e9cup\u00e9rer plus facilement les donn\u00e9es<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La version 2.17.0 am\u00e9liore aussi le module <strong>Essentials Shortcodes<\/strong> c\u00f4t\u00e9 Pro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jusqu\u2019ici, les shortcodes s\u2019appuyaient sur les fonctions WordPress classiques comme <code>get_post_meta()<\/code>, <code>get_term_meta()<\/code>, <code>get_user_meta()<\/code> ou <code>get_option()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u00e9sormais, il est possible d\u2019activer l\u2019usage de <strong>ACF <code>get_field()<\/code><\/strong> gr\u00e2ce \u00e0 un nouvel attribut <code>acf=\"1\"<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ce que \u00e7a change concr\u00e8tement<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cette nouveaut\u00e9 facilite la r\u00e9cup\u00e9ration de champs ACF dans les shortcodes pour :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>les publications<\/li>\n\n\n\n<li>les termes<\/li>\n\n\n\n<li>les utilisateurs<\/li>\n\n\n\n<li>les options<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Par exemple, on peut maintenant utiliser plus facilement ce type d\u2019appel :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[wpmtk_aes_post key=\"my_acf_field\" acf=\"1\"]\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ou encore pour une option ACF :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[wpmtk_aes_option name=\"my_acf_option\" acf=\"1\"]\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est une am\u00e9lioration tr\u00e8s pratique pour les sites qui s\u2019appuient fortement sur Advanced Custom Fields.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Une interface plus claire dans le g\u00e9n\u00e9rateur<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019interface du module a aussi \u00e9t\u00e9 ajust\u00e9e pour refl\u00e9ter cette nouveaut\u00e9 :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ajout de cases \u00e0 cocher pour utiliser <code>get_field()<\/code><\/li>\n\n\n\n<li>exemples mis \u00e0 jour dans la documentation int\u00e9gr\u00e9e<\/li>\n\n\n\n<li>placeholders simplifi\u00e9s dans certains champs du g\u00e9n\u00e9rateur<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00e9sultat : le module devient plus souple et plus coh\u00e9rent pour les utilisateurs qui manipulent aussi bien les meta WordPress natives que les champs ACF.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Obfuscate Email Addresses : plus de contr\u00f4le sur l\u2019affichage et les liens<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le module <strong>Obfuscate Email Addresses<\/strong> \u00e9volue lui aussi dans cette version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019objectif de ce module reste le m\u00eame : prot\u00e9ger les adresses e-mail contre les bots, tout en les gardant lisibles pour les visiteurs humains.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Avec la 2.17.0, deux nouvelles options font leur apparition dans le shortcode.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nouvelle option <code>rtl=\"no\"<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le module utilisait un rendu bas\u00e9 sur une logique d\u2019inversion visuelle pour compliquer la lecture automatis\u00e9e par les robots.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans certains contextes, ce comportement pouvait toutefois nuire \u00e0 l\u2019exp\u00e9rience utilisateur. Pour r\u00e9pondre \u00e0 ce besoin, une nouvelle option <code>rtl=\"no\"<\/code> permet de d\u00e9sactiver ce rendu right-to-left quand il n\u2019est pas souhait\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est utile lorsque le rendu visuel doit rester plus naturel ou plus lisible selon le design du site.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nouvelle option <code>mailto=\"yes\"<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Autre ajout : la possibilit\u00e9 de g\u00e9n\u00e9rer un lien cliquable prot\u00e9g\u00e9 avec <code>mailto=\"yes\"<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le fonctionnement repose sur un d\u00e9codage diff\u00e9r\u00e9 via un attribut <code>data-email<\/code> et un script ex\u00e9cut\u00e9 au clic. L\u2019id\u00e9e est d\u2019\u00e9viter d\u2019exposer directement l\u2019adresse e-mail dans un lien <code>mailto:<\/code> lisible imm\u00e9diatement par les robots.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On garde donc un usage pratique pour le visiteur, tout en ajoutant une couche de protection.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exemple de shortcode<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La description du module a d\u2019ailleurs \u00e9t\u00e9 mise \u00e0 jour avec un exemple enrichi :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">[wpm_obfuscate email=\"example@email.com\" display=\"newline\" rtl=\"no\" mailto=\"yes\"]\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Security : renforcement du module Prevent User Enumeration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La s\u00e9curit\u00e9 a aussi droit \u00e0 son am\u00e9lioration dans cette version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le module <strong>Prevent User Enumeration<\/strong> a \u00e9t\u00e9 renforc\u00e9 pour mieux bloquer certaines tentatives de contournement sur l\u2019API REST.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le probl\u00e8me corrig\u00e9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le contr\u00f4le sur l\u2019URL REST pouvait \u00eatre contourn\u00e9 en utilisant des lettres majuscules dans l\u2019URI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La correction appliqu\u00e9e normalise d\u00e9sormais l\u2019URL en minuscules avant v\u00e9rification, ce qui emp\u00eache ce type de variation de contourner la protection.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est une am\u00e9lioration discr\u00e8te, mais importante. Ce sont souvent ce genre de d\u00e9tails qui font la diff\u00e9rence entre une protection th\u00e9orique et une protection r\u00e9ellement robuste.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Correctif critique sur le <code>.htaccess<\/code> : fin des 404 sur <code>\/wp-json\/<\/code> et des permaliens cass\u00e9s<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Parmi les correctifs les plus importants de cette release, il y a aussi une am\u00e9lioration sur la gestion du fichier <code>.htaccess<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ce qui pouvait se passer avant<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Lors de certaines mises \u00e0 jour ou modifications, le fichier <code>.htaccess<\/code> pouvait poser probl\u00e8me :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>des r\u00e8gles non g\u00e9r\u00e9es par le plugin pouvaient \u00eatre \u00e9cras\u00e9es<\/li>\n\n\n\n<li>le bloc de rewrite WordPress n\u2019\u00e9tait pas toujours resynchronis\u00e9 correctement<\/li>\n\n\n\n<li>cela pouvait provoquer des erreurs <strong>404 sur <code>\/wp-json\/<\/code><\/strong><\/li>\n\n\n\n<li>certains permaliens pouvaient cesser de fonctionner correctement<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Ce qui change dans la 2.17.0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le correctif apporte deux am\u00e9liorations majeures :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>les r\u00e8gles <code>.htaccess<\/code> existantes non li\u00e9es au plugin sont d\u00e9sormais pr\u00e9serv\u00e9es<\/li>\n\n\n\n<li>les r\u00e8gles de r\u00e9\u00e9criture WordPress sont resynchronis\u00e9es apr\u00e8s les modifications quand c\u2019est n\u00e9cessaire<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Concr\u00e8tement, cela r\u00e9duit les risques de casser l\u2019acc\u00e8s \u00e0 l\u2019API REST ou au syst\u00e8me de permaliens sur des environnements Apache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est le genre de fix qui ne se voit pas forc\u00e9ment dans l\u2019interface, mais qui a un vrai impact en production.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Une version orient\u00e9e usages r\u00e9els<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cette v2.17.0 illustre bien la logique de WPMasterToolKit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019id\u00e9e n\u2019est pas seulement d\u2019empiler des options, mais d\u2019ajouter des modules r\u00e9ellement utiles dans le quotidien WordPress :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>des outils de maintenance int\u00e9gr\u00e9s<\/li>\n\n\n\n<li>des am\u00e9liorations orient\u00e9es terrain<\/li>\n\n\n\n<li>des garde-fous techniques quand une fonctionnalit\u00e9 peut \u00eatre risqu\u00e9e<\/li>\n\n\n\n<li>des corrections concr\u00e8tes sur des probl\u00e8mes qui impactent de vrais sites<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Le nouveau module <strong>Search Replace in database<\/strong> en est probablement le meilleur exemple. C\u2019est typiquement le genre d\u2019outil qu\u2019on finit souvent par installer via une extension d\u00e9di\u00e9e. L\u2019int\u00e9grer directement dans WPMasterToolKit permet de centraliser davantage d\u2019actions utiles dans un seul plugin.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog de la version 2.17.0<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Update<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pro Module: Essentials Shortcodes<\/strong>\n<ul class=\"wp-block-list\">\n<li>ajout du support des permaliens dans les shortcodes <code>[wpmtk_post_meta]<\/code> et <code>[wpmtk_term_meta]<\/code><\/li>\n\n\n\n<li>ajout du support ACF via <code>get_field()<\/code> dans <code>[wpmtk_post_meta]<\/code> et <code>[wpmtk_term_meta]<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Module: Obfuscate Email Addresses<\/strong>\n<ul class=\"wp-block-list\">\n<li>ajout de l\u2019option <code>rtl<\/code> pour d\u00e9sactiver le rendu right-to-left quand n\u00e9cessaire<\/li>\n\n\n\n<li>ajout d\u2019une option <code>mailto<\/code> prot\u00e9g\u00e9e avec d\u00e9codage diff\u00e9r\u00e9 au clic<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Add<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module: Search Replace in database<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Module: Prevent User Enumeration<\/strong>\n<ul class=\"wp-block-list\">\n<li>blocage des variantes d\u2019URI utilisant des lettres majuscules<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Fix<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>pr\u00e9servation des r\u00e8gles <code>.htaccess<\/code> non li\u00e9es au plugin<\/li>\n\n\n\n<li>resynchronisation du bloc de rewrite WordPress apr\u00e8s mise \u00e0 jour<\/li>\n\n\n\n<li>pr\u00e9vention des erreurs Apache 404 sur <code>\/wp-json\/<\/code><\/li>\n\n\n\n<li>correction des probl\u00e8mes de permaliens cass\u00e9s<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Avec <strong>WPMasterToolKit 2.17.0<\/strong>, on a une mise \u00e0 jour \u00e0 la fois utile, technique et tr\u00e8s concr\u00e8te.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le nouveau module <strong>Search Replace in database<\/strong> apporte un vrai confort pour les op\u00e9rations de maintenance et de migration sur WordPress. Les am\u00e9liorations des <strong>Essentials Shortcodes<\/strong> rendent le module plus int\u00e9ressant pour les utilisateurs d\u2019ACF. Les \u00e9volutions sur l\u2019obfuscation des e-mails offrent plus de souplesse. Et les correctifs de s\u00e9curit\u00e9 et de <code>.htaccess<\/code> renforcent la fiabilit\u00e9 globale du plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bref, une release qui ne cherche pas \u00e0 faire du bruit pour rien, mais qui ajoute de vrais outils et corrige de vrais probl\u00e8mes.<\/p>",
        "protected": false
    },
    "excerpt": {
        "rendered": "<p>WPMasterToolKit 2.17.0 ajoute un nouveau module Search Replace in database pour effectuer des remplacements dans la base WordPress plus s\u00fbrement, avec simulation, aper\u00e7u des changements et gestion des donn\u00e9es s\u00e9rialis\u00e9es, tout en apportant aussi le support ACF dans les Essentials Shortcodes, de nouvelles options pour l\u2019obfuscation des e-mails et un correctif important sur le .htaccess.<\/p>",
        "protected": false
    },
    "author": 1,
    "featured_media": 0,
    "comment_status": "closed",
    "ping_status": "closed",
    "sticky": false,
    "template": "",
    "format": "standard",
    "meta": {
        "_acf_changed": false,
        "_seopress_titles_title": "",
        "_seopress_titles_desc": "",
        "_seopress_robots_index": "",
        "_seopress_robots_follow": "",
        "_seopress_robots_imageindex": "",
        "_seopress_robots_snippet": "",
        "_seopress_robots_primary_cat": "",
        "_seopress_robots_breadcrumbs": "",
        "_seopress_robots_freeze_modified_date": "",
        "_seopress_robots_custom_modified_date": "",
        "_seopress_robots_canonical": "",
        "_seopress_social_fb_title": "",
        "_seopress_social_fb_desc": "",
        "_seopress_social_fb_img": "",
        "_seopress_social_fb_img_attachment_id": 0,
        "_seopress_social_fb_img_width": 0,
        "_seopress_social_fb_img_height": 0,
        "_seopress_social_twitter_title": "",
        "_seopress_social_twitter_desc": "",
        "_seopress_social_twitter_img": "",
        "_seopress_social_twitter_img_attachment_id": 0,
        "_seopress_social_twitter_img_width": 0,
        "_seopress_social_twitter_img_height": 0,
        "_seopress_redirections_value": "",
        "_seopress_redirections_enabled": "",
        "_seopress_redirections_enabled_regex": "",
        "_seopress_redirections_logged_status": "",
        "_seopress_redirections_param": "",
        "_seopress_redirections_type": 0,
        "_seopress_analysis_target_kw": "",
        "_surecart_dashboard_logo_width": "180px",
        "_surecart_dashboard_show_logo": true,
        "_surecart_dashboard_navigation_orders": true,
        "_surecart_dashboard_navigation_invoices": true,
        "_surecart_dashboard_navigation_subscriptions": true,
        "_surecart_dashboard_navigation_downloads": true,
        "_surecart_dashboard_navigation_billing": true,
        "_surecart_dashboard_navigation_account": true,
        "footnotes": ""
    },
    "categories": [
        1
    ],
    "tags": [],
    "class_list": [
        "post-6456",
        "post",
        "type-post",
        "status-publish",
        "format-standard",
        "hentry",
        "category-non-classe"
    ],
    "acf": [],
    "_links": {
        "self": [
            {
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/posts\/6456",
                "targetHints": {
                    "allow": [
                        "GET"
                    ]
                }
            }
        ],
        "collection": [
            {
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/posts"
            }
        ],
        "about": [
            {
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/types\/post"
            }
        ],
        "author": [
            {
                "embeddable": true,
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/users\/1"
            }
        ],
        "replies": [
            {
                "embeddable": true,
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/comments?post=6456"
            }
        ],
        "version-history": [
            {
                "count": 0,
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/posts\/6456\/revisions"
            }
        ],
        "wp:attachment": [
            {
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/media?parent=6456"
            }
        ],
        "wp:term": [
            {
                "taxonomy": "category",
                "embeddable": true,
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/categories?post=6456"
            },
            {
                "taxonomy": "post_tag",
                "embeddable": true,
                "href": "https:\/\/wpmastertoolkit.com\/fr\/wp-json\/wp\/v2\/tags?post=6456"
            }
        ],
        "curies": [
            {
                "name": "wp",
                "href": "https:\/\/api.w.org\/{rel}",
                "templated": true
            }
        ]
    }
}