Quelle est la différence entre:
wp search-replace 'http://' 'https://' --allow-root
à:
wp search-replace 'http://' 'https://' --all-tables-with-prefix --allow-root
AFAIU, la première recherche et remplace dans toutes les tables sans préfixe et la seconde dans toutes les tables --- avec ou sans préfixe.
Est-ce exact?
Je demande ceci après avoir obtenu beaucoup plus de tables avec la deuxième commande, mais la syntaxe semble un peu déroutante.
Dans une installation WordPress, un certain nombre de tables de base de données sont enregistrées dans l'objet $wpdb
. Pour voir ce qu'ils sont, vous pouvez exécuter la commande WP-CLI wp db tables
.
Sur mon installation WP locale, il s'agit des tables $wpdb
- enregistrées:
wp_users
wp_usermeta
wp_posts
wp_comments
wp_links
wp_options
wp_postmeta
wp_terms
wp_term_taxonomy
wp_term_relationships
wp_termmeta
wp_commentmeta
wp_blogs
wp_signups
wp_site
wp_sitemeta
wp_sitecategories
wp_registration_log
wp_blog_versions
Le préfixe de la table WordPress, par défaut, est wp_
. Vous pouvez modifier cela dans votre fichier wp-config.php
et choisir de le faire pour différentes raisons: vous devrez peut-être exécuter plusieurs installations WordPress à partir d'une seule base de données, ou vous souhaitez peut-être renforcer votre installation WordPress en rendant certaines choses plus difficiles pour les utilisateurs. attaquant à deviner.
Des plugins et/ou des thèmes peuvent créer de nouvelles tables dans la base de données WordPress: par exemple, Gravity Forms génère un ensemble de tables au format {$wpdb->prefix}_rg_{table_name}
(ainsi, dans l'installation par défaut de WordPress, wp_rg_{table_name}
). Lorsque vous exécutez wp search-replace {search} {replace}
, ces autres tables ne feront pas l'objet d'une recherche , car l'objet $wpdb
ne les connaît pas.
Pour rechercher ces tables non -$wpdb
- enregistrées qui ont toujours le préfixe de table WordPress (c'est-à-dire wp_
ou ce que vous avez défini), vous utilisez l'indicateur --all-tables-with-prefix
sur l'invocation wp search-replace
.
Si vous souhaitez rechercher all les tables de votre base de données, quel que soit leur préfixe, vous pouvez utiliser le drapeau --all-tables
. Soyez prudent, cependant, car cela peut avoir des conséquences inattendues (dans un environnement multisite, par exemple, ou dans le cas où plusieurs installations WordPress sont exécutées à partir d'une seule base de données).
En passant, je fortement recommande d'utiliser l'indicateur --dry-run
pour chaque recherche et remplacement que vous effectuez, afin que vous puissiez voir ce qui sera affecté avant vous apportez des modifications à votre base de données.