Découvrez quelles options de base de données WordPress appartiennent aux plugins
Cet article vous montrera comment identifier quelles options de plugins WordPress dans la table wp_options
appartiennent à un plugin spécifique.
Normalement, les développeurs recherchent manuellement dans la table wp_options
avec phpMyAdmin ou Adminer (version plugin WordPress), mais cela peut souvent être très fastidieux car vous devez paginer parfois des centaines de pages !
Lorsque nous disposons d’outils de ligne de commande Linux via SSH comme WP-CLI et grep, nous pouvons efficacement identifier quelles options dans la base de données WordPress appartiennent à un plugin spécifique et gagner un temps précieux !
Dans cet article, je vais montrer les techniques que j’utilise habituellement pour trouver ces options afin de pouvoir corriger les paramètres, les sauvegarder, etc. en faisant correspondre le option_name
WordPress au plugin.Veuillez noter que ces deux approches nécessiteront un terminal et un accès SSH de quelque sorte à votre installation WordPress.
Je supposerai que WP-CLI et grep sont déjà installés sur le système Linux. Kinsta, WPEngine et FastNyx fournissent un accès SSH avec WP-CLI et grep disponibles.
Vous trouvez ça compliqué ? Contactez-moi pour une assistance rapide et personnalisée !
Découvrez quelles valeurs de base de données option_name
appartiennent aux plugins WordPress
Les deux premières techniques utilisent mon outil préféré : WP-CLI, après quoi il y a une méthode utilisant l’outil Linux grep
.
WP-CLI
J’avais un client sur Codeable qui avait environ 3 plugins de partage social différents ! Je voulais écrire un script utilisant WP-CLI pour supprimer par lots toutes ces valeurs de plugins WordPress dans la base de données qui n’étaient plus nécessaires. Dans ce tutoriel, j’essaierai d’identifier les option_names
d’addthis dans la table wp_options
de la base de données WordPress.Dans cette section, nous utiliserons WP-CLI.
Utilisation de la commande option de WP-CLI
En utilisant la commande option list
couplée à la restriction du --field
à option_names
uniquement, nous pouvons ensuite utiliser grep
pour n’afficher que les option_names qui contiennent la chaîne addthis
.
wp option list --field=option_name --allow-root | grep addthis
Code language: PHP (php)
Cela nous donnera une liste de toutes les options de la base de données WordPress contenant “addthis” dans leur nom:
addthis_settings
addthis_share
addthis_product
addthis_plugin_controls
Si vous souhaitez voir toutes les option_values
pour chaque option_name
contenant addthis
, vous pouvez utiliser cette commande qui bouclera à travers chacune d’elles :
wp option list --field=option_name --allow-root | grep addthis | xargs --replace=% wp option get % --allow-root
Code language: JavaScript (javascript)
Notez qu’il s’agit de tableaux sérialisés :
array (
'addthis_social_widget_migrated_to' => 'addthis_sharing_buttons_settings',
)
array (
1 =>
array (
),
'_multiwidget' => 1,
)
array (
'addthis_anonymous_profile' => 'wp-c419021f34068dcd14db1185f724f76c',
'addthis_asynchronous_loading' => true,
'addthis_environment' => '',
'addthis_per_post_enabled' => true,
'addthis_plugin_controls' => 'AddThis',
'addthis_profile' => 'ra-53ce33e04caa78a0',
'addthis_rate_us' => '',
'addthis_rate_us_timestamp' => 1500897630,
'credential_validation_status' => '1',
'wpfooter' => true,
'addthis_twitter_template' => 'biznewsCOM',
'addthis_bitly' => true,
'addthis_share_json' => '',
'addthis_layers_json' => '',
'data_ga_property' => '',
'addthis_language' => '',
'atversion' => 300,
'addthis_append_data' => true,
'addthis_addressbar' => false,
'addthis_508' => false,
'addthis_config_json' => '',
)
array (
'above' => 'disable',
'below' => 'disable',
'addthis_showonexcerpts' => false,
'addthis_aftertitle' => false,
'addthis_beforecomments' => false,
'atversion_update_status' => '0',
'above_chosen_list' => '',
'below_chosen_list' => '',
'addthis_wordpress_version' => '4.0',
'addthis_plugin_version' => '5.3.4',
'addthis_above_showon_home' => true,
'addthis_below_showon_home' => true,
'addthis_above_showon_pages' => true,
'addthis_below_showon_pages' => true,
'addthis_above_showon_categories' => true,
'addthis_below_showon_categories' => true,
'addthis_above_showon_archives' => true,
'addthis_below_showon_archives' => true,
'addthis_above_enabled' => false,
'addthis_below_enabled' => false,
'above_auto_services' => true,
'above_custom_more' => '',
'above_custom_preferred' => '',
'above_custom_services' => '',
'above_custom_size' => '',
'above_custom_string' => '',
'addthis_sidebar_count' => '5',
'addthis_sidebar_enabled' => false,
'addthis_sidebar_position' => 'left',
'addthis_mobile_toolbar_enabled' => false,
'addthis_mobile_toolbar_numPreferredServices' => '4',
'addthis_mobile_toolbar_position' => 'bottom',
'addthis_mobile_toolbar_counts' => true,
'below_auto_services' => true,
'below_custom_more' => '',
'below_custom_preferred' => '',
'below_custom_services' => '',
'below_custom_size' => '',
'below_custom_string' => '',
'location' => 'below',
'style' => 'fb_tw_p1_sc',
'toolbox' => '',
'addthis_above_showon_posts' => true,
'addthis_above_showon_excerpts' => true,
'addthis_below_showon_posts' => true,
'addthis_below_showon_excerpts' => true,
'addthis_sidebar_showon_home' => true,
'addthis_sidebar_showon_posts' => true,
'addthis_sidebar_showon_pages' => true,
'addthis_sidebar_showon_archives' => true,
'addthis_sidebar_showon_categories' => true,
'addthis_mobile_toolbar_showon_home' => true,
'addthis_mobile_toolbar_showon_posts' => true,
'addthis_mobile_toolbar_showon_pages' => true,
'addthis_mobile_toolbar_showon_archives' => true,
'addthis_mobile_toolbar_showon_categories' => true,
)
Code language: PHP (php)
Si vous souhaitez mettre tout cela au format JSON, vous pouvez utiliser le drapeau --format
, comme avec cette commande:
wp option list --field=option_name --allow-root | grep addthis | xargs --replace=% wp option get % --format=json --allow-root
Code language: JavaScript (javascript)
Le résultat obtenu est bien au format JSON :
{"addthis_social_widget_migrated_to":"addthis_sharing_buttons_settings"}
{"1":[],"_multiwidget":1}
{"addthis_anonymous_profile":"wp-c419021f34068dcd14db1185f724f76c","addthis_asynchronous_loading":true,"addthis_environment":"","addthis_per_post_enabled":true,"addthis_plugin_controls":"AddThis","addthis_profile":"ra-53ce33e04caa78a0","addthis_rate_us":"","addthis_rate_us_timestamp":1500897630,"credential_validation_status":"1","wpfooter":true,"addthis_twitter_template":"biznewsCOM","addthis_bitly":true,"addthis_share_json":"","addthis_layers_json":"","data_ga_property":"","addthis_language":"","atversion":300,"addthis_append_data":true,"addthis_addressbar":false,"addthis_508":false,"addthis_config_json":""}
{"above":"disable","below":"disable","addthis_showonexcerpts":false,"addthis_aftertitle":false,"addthis_beforecomments":false,"atversion_update_status":"0","above_chosen_list":"","below_chosen_list":"","addthis_wordpress_version":"4.0","addthis_plugin_version":"5.3.4","addthis_above_showon_home":true,"addthis_below_showon_home":true,"addthis_above_showon_pages":true,"addthis_below_showon_pages":true,"addthis_above_showon_categories":true,"addthis_below_showon_categories":true,"addthis_above_showon_archives":true,"addthis_below_showon_archives":true,"addthis_above_enabled":false,"addthis_below_enabled":false,"above_auto_services":true,"above_custom_more":"","above_custom_preferred":"","above_custom_services":"","above_custom_size":"","above_custom_string":"","addthis_sidebar_count":"5","addthis_sidebar_enabled":false,"addthis_sidebar_position":"left","addthis_mobile_toolbar_enabled":false,"addthis_mobile_toolbar_numPreferredServices":"4","addthis_mobile_toolbar_position":"bottom","addthis_mobile_toolbar_counts":true,"below_auto_services":true,"below_custom_more":"","below_custom_preferred":"","below_custom_services":"","below_custom_size":"","below_custom_string":"","location":"below","style":"fb_tw_p1_sc","toolbox":"","addthis_above_showon_posts":true,"addthis_above_showon_excerpts":true,"addthis_below_showon_posts":true,"addthis_below_showon_excerpts":true,"addthis_sidebar_showon_home":true,"addthis_sidebar_showon_posts":true,"addthis_sidebar_showon_pages":true,"addthis_sidebar_showon_archives":true,"addthis_sidebar_showon_categories":true,"addthis_mobile_toolbar_showon_home":true,"addthis_mobile_toolbar_showon_posts":true,"addthis_mobile_toolbar_showon_pages":true,"addthis_mobile_toolbar_showon_archives":true,"addthis_mobile_toolbar_showon_categories":true}
Code language: JSON / JSON with Comments (json)
S’ils sont sérialisés, vous pouvez les enregistrer tous dans des fichiers séparés pour les examiner avec cette mini boucle de script bash :
WPPATH=""
WPFLAGS="--path=${WPPATH} --skip-plugins --skip-themes --allow-root"
# path to store option values without trailing slash
OPTIONPATH=/tmp
OPTIONNAME="addthis"
OPTIONLIST=($(wp option list --field=option_name ${WPFLAGS} | grep ${OPTIONNAME}))
for OPTION in ${OPTIONLIST[@]};
do
wp option get ${OPTION} --format=json ${WPFLAGS} > ${OPTIONPATH}/${OPTION}.txt
done
Code language: PHP (php)
Vous aurez un fichier séparé pour chaque option_name
dans le dossier /tmp
à examiner ensuite.Si vous ne les voulez pas au format JSON, ceci devrait faire l’affaire :
WPPATH=""
WPFLAGS="--path=${WPPATH} --skip-plugins --skip-themes --allow-root"
# path to store option values without trailing slash
OPTIONPATH=/tmp
OPTIONNAME="addthis"
OPTIONLIST=($(wp option list --field=option_name ${WPFLAGS} | grep ${OPTIONNAME}))
for OPTION in ${OPTIONLIST[@]};
do
wp option get ${OPTION} ${WPFLAGS} > ${OPTIONPATH}/${OPTION}.txt
done
Code language: PHP (php)
Si c’est une option_value
plutôt qu’un option_name
que vous recherchez dans le plugin WordPress, essayez ceci et remplacez addthis
par la valeur que vous recherchez :
wp option list --field=option_value --allow-root | grep addthis
Code language: PHP (php)
Résultats:
a:1:{s:33:"addthis_social_widget_migrated_to";s:32:"addthis_sharing_buttons_settings";}
a:21:{s:25:"addthis_anonymous_profile";s:35:"wp-c419021f34068dcd14db1185f724f76c";s:28:"addthis_asynchronous_loading";b:1;s:19:"addthis_environment";s:0:"";s:24:"addthis_per_post_enabled";b:1;s:23:"addthis_plugin_controls";s:7:"AddThis";s:15:"addthis_profile";s:19:"ra-53ce33e04caa78a0";s:15:"addthis_rate_us";s:0:"";s:25:"addthis_rate_us_timestamp";i:1500897630;s:28:"credential_validation_status";s:1:"1";s:8:"wpfooter";b:1;s:24:"addthis_twitter_template";s:10:"biznewsCOM";s:13:"addthis_bitly";b:1;s:18:"addthis_share_json";s:0:"";s:19:"addthis_layers_json";s:0:"";s:16:"data_ga_property";s:0:"";s:16:"addthis_language";s:0:"";s:9:"atversion";i:300;s:19:"addthis_append_data";b:1;s:18:"addthis_addressbar";b:0;s:11:"addthis_508";b:0;s:19:"addthis_config_json";s:0:"";}
a:56:{s:5:"above";s:7:"disable";s:5:"below";s:7:"disable";s:22:"addthis_showonexcerpts";b:0;s:18:"addthis_aftertitle";b:0;s:22:"addthis_beforecomments";b:0;s:23:"atversion_update_status";s:1:"0";s:17:"above_chosen_list";s:0:"";s:17:"below_chosen_list";s:0:"";s:25:"addthis_wordpress_version";s:3:"4.0";s:22:"addthis_plugin_version";s:5:"5.3.4";s:25:"addthis_above_showon_home";b:1;s:25:"addthis_below_showon_home";b:1;s:26:"addthis_above_showon_pages";b:1;s:26:"addthis_below_showon_pages";b:1;s:31:"addthis_above_showon_categories";b:1;s:31:"addthis_below_showon_categories";b:1;s:29:"addthis_above_showon_archives";b:1;s:29:"addthis_below_showon_archives";b:1;s:21:"addthis_above_enabled";b:0;s:21:"addthis_below_enabled";b:0;s:19:"above_auto_services";b:1;s:17:"above_custom_more";s:0:"";s:22:"above_custom_preferred";s:0:"";s:21:"above_custom_services";s:0:"";s:17:"above_custom_size";s:0:"";s:19:"above_custom_string";s:0:"";s:21:"addthis_sidebar_count";s:1:"5";s:23:"addthis_sidebar_enabled";b:0;s:24:"addthis_sidebar_position";s:4:"left";s:30:"addthis_mobile_toolbar_enabled";b:0;s:43:"addthis_mobile_toolbar_numPreferredServices";s:1:"4";s:31:"addthis_mobile_toolbar_position";s:6:"bottom";s:29:"addthis_mobile_toolbar_counts";b:1;s:19:"below_auto_services";b:1;s:17:"below_custom_more";s:0:"";s:22:"below_custom_preferred";s:0:"";s:21:"below_custom_services";s:0:"";s:17:"below_custom_size";s:0:"";s:19:"below_custom_string";s:0:"";s:8:"location";s:5:"below";s:5:"style";s:11:"fb_tw_p1_sc";s:7:"toolbox";s:0:"";s:26:"addthis_above_showon_posts";b:1;s:29:"addthis_above_showon_excerpts";b:1;s:26:"addthis_below_showon_posts";b:1;s:29:"addthis_below_showon_excerpts";b:1;s:27:"addthis_sidebar_showon_home";b:1;s:28:"addthis_sidebar_showon_posts";b:1;s:28:"addthis_sidebar_showon_pages";b:1;s:31:"addthis_sidebar_showon_archives";b:1;s:33:"addthis_sidebar_showon_categories";b:1;s:34:"addthis_mobile_toolbar_showon_home";b:1;s:35:"addthis_mobile_toolbar_showon_posts";b:1;s:35:"addthis_mobile_toolbar_showon_pages";b:1;s:38:"addthis_mobile_toolbar_showon_archives";b:1;s:40:"addthis_mobile_toolbar_showon_categories";b:1;}
Code language: CSS (css)
Recherche dans la base de données avec WP-CLI
Cette commande recherchera dans la table wp_options
uniquement, dans les colonnes option_name
et option_value
.
Nous utilisons également la commande wp db prefix
, qui est très pratique :
wp db search "addthis" $(wp db prefix --allow-root)options --allow-root
Voici la sortie :
aue_options:option_name
251966:addthis_settings
aue_options:option_name
2868184:addthis_shared_settings
aue_options:option_name
2868185:addthis_sharing_buttons_settings
aue_options:option_name
257106:widget_addthis-widget
aue_options:option_value
251966:a:1:{s:33:"addthis_social_widget_migrated_to";s:32:"addthis_sharing_buttons_settings";}
aue_options:option_value
392010:link-to-facebook.php";s:5:"1.212";s:33:"addthis/addthis_social_widget.php";s:3:"4.0";s:43:"brok [...] /add-link-to-facebook.1.212.zip";}s:33:"addthis/addthis_social_widget.php";O:8:"stdClass":7:{s: [...] :7:{s:2:"id";s:4:"5710";s:4:"slug";s:7:"addthis";s:6:"plugin";s:33:"addthis/addthis_social_widget.php";s:11:"new_version";s [...] rl";s:38:"https://wordpress.org/plugins/addthis/";s:7:"package";s:57:"https://downloads [...] "https://downloads.wordpress.org/plugin/addthis.3.5.10.zip";}s:43:"broken-link-checker/
aue_options:option_value
2868184:a:21:{s:25:"addthis_anonymous_profile";s:35:"wp-c419021f340 [...] c419021f34068dcd14db1185f724f76c";s:28:"addthis_asynchronous_loading";b:1;s:19:"addthis_environment";s:0:"";s:24:"addthis_per_post_enabled";b:1;s:23:"addthis_plugin_controls";s:7:"AddThis";s:15:"addthis_profile";s:19:"ra-53ce33e04caa78a0";s:1 [...] ofile";s:19:"ra-53ce33e04caa78a0";s:15:"addthis_rate_us";s:0:"";s:25:"addthis_rate_us_timestamp";i:1500897630;s:28:"c [...] tatus";s:1:"1";s:8:"wpfooter";b:1;s:24:"addthis_twitter_template";s:10:"biznewsCOM";s:1 [...] itter_template";s:10:"biznewsCOM";s:13:"addthis_bitly";b:1;s:18:"addthis_share_json";s:0:"";s:19:"addthis_layers_json";s:0:"";s:16:"data_ga_prope [...] "";s:16:"data_ga_property";s:0:"";s:16:"addthis_language";s:0:"";s:9:"atversion";i:300; [...] age";s:0:"";s:9:"atversion";i:300;s:19:"addthis_append_data";b:1;s:18:"addthis_addressbar";b:0;s:11:"addthis_508";b:0;s:19:"addthis_config_json";s:0:"";}
aue_options:option_value
2868185:isable";s:5:"below";s:7:"disable";s:22:"addthis_showonexcerpts";b:0;s:18:"addthis_aftertitle";b:0;s:22:"addthis_beforecomments";b:0;s:23:"atversion_upd [...] ";s:17:"below_chosen_list";s:0:"";s:25:"addthis_wordpress_version";s:3:"4.0";s:22:"addthis_plugin_version";s:5:"5.3.4";s:25:"addthis_above_showon_home";b:1;s:25:"addthis_below_showon_home";b:1;s:26:"addthis_above_showon_pages";b:1;s:26:"addthis_below_showon_pages";b:1;s:31:"addthis_above_showon_categories";b:1;s:31:"addthis_below_showon_categories";b:1;s:29:"addthis_above_showon_archives";b:1;s:29:"addthis_below_showon_archives";b:1;s:21:"addthis_above_enabled";b:0;s:21:"addthis_below_enabled";b:0;s:19:"above_auto_ser [...] s:19:"above_custom_string";s:0:"";s:21:"addthis_sidebar_count";s:1:"5";s:23:"addthis_sidebar_enabled";b:0;s:24:"addthis_sidebar_position";s:4:"left";s:30:"addthis_mobile_toolbar_enabled";b:0;s:43:"addthis_mobile_toolbar_numPreferredServices";s: [...] bar_numPreferredServices";s:1:"4";s:31:"addthis_mobile_toolbar_position";s:6:"bottom";s [...] le_toolbar_position";s:6:"bottom";s:29:"addthis_mobile_toolbar_counts";b:1;s:19:"below_ [...] fb_tw_p1_sc";s:7:"toolbox";s:0:"";s:26:"addthis_above_showon_posts";b:1;s:29:"addthis_above_showon_excerpts";b:1;s:26:"addthis_below_showon_posts";b:1;s:29:"addthis_below_showon_excerpts";b:1;s:27:"addthis_sidebar_showon_home";b:1;s:28:"addthis_sidebar_showon_posts";b:1;s:28:"addthis_sidebar_showon_pages";b:1;s:31:"addthis_sidebar_showon_archives";b:1;s:33:"addthis_sidebar_showon_categories";b:1;s:34:"addthis_mobile_toolbar_showon_home";b:1;s:35:"addthis_mobile_toolbar_showon_posts";b:1;s:35:" [...] _mobile_toolbar_showon_posts";b:1;s:35:"addthis_mobile_toolbar_showon_pages";b:1;s:38:" [...] _mobile_toolbar_showon_pages";b:1;s:38:"addthis_mobile_toolbar_showon_archives";b:1;s:4 [...] bile_toolbar_showon_archives";b:1;s:40:"addthis_mobile_toolbar_showon_categories";b:1;}
Code language: JavaScript (javascript)
Si la table wp_options est vide, vous pouvez rechercher dans toutes les tables avec l’option –all-tables :
wp db search "addthis" --all-tables --allow-root
Code language: JavaScript (javascript)
La commande ci-dessus peut aider à détecter les options des plugins WordPress qui se trouvent en dehors de la table wp_options.
Utilisation de la commande db de WP-CLI
Une autre façon d’obtenir le même résultat est d’utiliser la commande wp db query
de WP-CLI. Voici un exemple :
wp db query "SELECT option_name FROM wp_options WHERE option_name LIKE '%addthis%';"
Cela nous donnera le même résultat que la commande précédente :
+---------------------------+
| option_name |
+---------------------------+
| addthis_settings |
| addthis_share |
| addthis_product |
| addthis_plugin_controls |
+---------------------------+
Utilisation de grep
grep est un outil fantastique pour analyser des fichiers à la recherche d’une chaîne spécifique de manière extrêmement efficace.
Dans cette commande, nous recherchons la chaîne update_option dans les fichiers du dossier du plugin addthis.
Nous pouvons restreindre la recherche uniquement aux fichiers .php en utilisant l’option –include avec grep :
grep -rHin "update_option" wp-content/plugins/addthis/ --include \*.php
Code language: PHP (php)
Cette commande recherchera récursivement (-R) toutes les occurrences de “update_option” dans les fichiers du plugin spécifié. Cela vous donnera une idée des noms d’options que le plugin utilise.
La sortie affiche le nom du fichier contenant la chaîne, le numéro de ligne, ainsi que le contexte avant et après l’occurrence de cette chaîne :
wp-content/plugins/addthis/backend/AddThisFollowButtonsFeature.php:206: update_option('widget_' . $newWidgetsName, $newWidgetSettings);
wp-content/plugins/addthis/backend/AddThisFollowButtonsFeature.php:238: update_option('sidebars_widgets', $sideBarConfigs);
wp-content/plugins/addthis/backend/AddThisSharingButtonsFeature.php:440: update_option('widget_addthis_tool_by_class_name_widget', $outputWidgets);
wp-content/plugins/addthis/backend/AddThisFeature.php:721: update_option($this->settingsVariableName, $this->configs);
wp-content/plugins/addthis/backend/AddThisRegistrationFeature.php:761: update_option('smart_layer_profile', $profileId);
wp-content/plugins/addthis/backend/AddThisRegistrationFeature.php:765: update_option('addthis_settings', $configs);
Code language: PHP (php)
Conclusion
J’espère que cela vous aidera à localiser et à identifier certains de ces option_names que vous souhaitez sauvegarder, supprimer ou modifier sur votre boutique WooCommerce ou votre site WordPress.
En utilisant ces techniques, vous pouvez rapidement identifier quelles options de base de données appartiennent à un plugin spécifique dans WordPress. Cela peut être particulièrement utile lors du nettoyage de votre base de données après la désinstallation d’un plugin, ou lors du débogage de problèmes liés aux options de plugins.
Rappelez-vous toujours de faire une sauvegarde de votre base de données avant d’apporter des modifications, surtout si vous prévoyez de supprimer des options. Ces méthodes peuvent vous faire gagner beaucoup de temps par rapport à la recherche manuelle dans phpMyAdmin ou d’autres interfaces de gestion de base de données. Elles sont particulièrement utiles pour les développeurs et les administrateurs qui gèrent de nombreux sites WordPress ou des installations complexes avec de nombreux plugins.
Simplifiez la gestion de votre base de données WordPress ! Contactez-moi pour une assistance professionnelle et des résultats garantis !
Vous avez un projet WordPress ou WooCommerce en tête? Transformez votre vision en réalité avec mon expertise reconnue.