WPCLI搜索并替换所有表的变量

时间:2017-11-10 作者:Arcticooling

以下两者之间的区别是什么:

wp search-replace \'http://\' \'https://\' --allow-root
收件人:

wp search-replace \'http://\' \'https://\' --all-tables-with-prefix --allow-root
AFAIU,第一个在所有不带前缀的表中搜索和替换,第二个在所有表中搜索和替换-带前缀或不带前缀。

对吗?

在使用第二个命令获得更多的表之后,我问了这个问题,但语法似乎有点混乱。

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

在WordPress安装中,在$wpdb 对象要查看它们是什么,可以运行WP-CLI命令wp db tables.

在我的本地WP安装中,以下是$wpdb-已注册的表:

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
默认情况下,WordPress表前缀为wp_. 您可以在wp-config.php 并可能出于多种原因选择这样做:可能您需要从单个数据库运行多个WordPress安装,或者您希望通过使某些事情更难让攻击者猜测来强化WordPress安装。

插件和/或主题可能会在WordPress数据库中创建新表:例如,Gravity表单以以下格式生成一组表{$wpdb->prefix}_rg_{table_name} (因此,在默认WordPress安装中,wp_rg_{table_name}). 当你跑步时wp search-replace {search} {replace}, 不会搜索这些其他表,因为$wpdb object不知道它们。

要搜索这些非-$wpdb-仍然具有WordPress表前缀的已注册表(即,wp_ 或者不管你设置了什么),你使用--all-tables-with-prefix 上的标志wp search-replace 调用。

如果要搜索数据库中的所有表,而不考虑其前缀,可以使用--all-tables 旗帜但要小心,因为这可能会产生意外的后果(例如,在多站点环境中,或者在从单个数据库运行多个WordPress安装的情况下)。

另外,我强烈建议使用--dry-run 每次搜索的标志(&A);替换您所做的操作,以便在对数据库进行更改之前查看将受到影响的内容。

参考文献wp search-replace
  • wp db tables
  • 结束

    相关推荐

    如何使用wp-cli更新‘ARRAY’选项

    我正在尝试编写一个bash脚本来自动将活动站点同步到开发人员站点。我已经解决了一些基本问题,比如导出生产数据库和导入/更新开发站点中的URL,但我需要帮助更新一个将其数据保存为数组的选项。具体来说,我想使用wp-cli.我可以使用wp cli查看选项:$ wp option get woocommerce_stripe_settings array ( \'enabled\' => \'yes\', \'title\' => \'Credit Card (Str