Tìm hàng loạt và thay thế cơ sở dữ liệu WordPress - Cách dễ dàng
Có một vài dịp chúng ta phải thay đổi URL trong cơ sở dữ liệu trang web WordPress của chúng tôi. Chẳng hạn, chúng ta cần thực hiện việc này sau khi di chuyển cơ sở dữ liệu WordPress từ một trang web, ví dụ: từ http://acme.com
trang web sản xuất từ xa, đến http://acme.dev
trang web phát triển địa phương trên máy tính của chúng tôi.
WordPress.org lưu trữ rất nhiều plugin, chẳng hạn như WP DBManager và WP Migrate DB, và cũng có một số công cụ của bên thứ 3 cho phép bạn cơ sở dữ liệu nhập khẩu dễ dàng Phần khó khăn là phải thay đổi mọi trường hợp URL bên trong cơ sở dữ liệu.
Sau khi di chuyển cơ sở dữ liệu, các URL bên trong nó vẫn trỏ đến trang web cũ, trong trường hợp này để acme.com
. Bạn có thể tìm thấy URL cũ trong wp_options
bảng, được đặt làm giá trị của trang web
và nhà
các tùy chọn và có lẽ nó cũng được nhúng trong một số hàng và bảng khác trong cơ sở dữ liệu. Các URL cũ này cuối cùng có thể ngăn trang web của bạn chạy đúng cách, vì vậy bạn cần phải thay đổi chúng thành URL mới, trong ví dụ của chúng tôi để acme.dev
.
Tại thời điểm này, truy cập trang web phát triển của chúng tôi tại acme.dev
sẽ chỉ dẫn đến một trang trống.
Vậy làm cách nào để thay đổi tất cả các URL này trong cơ sở dữ liệu?
Chạy một truy vấn SQL
Thông thường, mọi người sẽ chạy Truy vấn SQL sau thay thế các giá trị của trang web
và nhà
tùy chọn trong wp_options
bàn.
CẬP NHẬT wp_options SET tùy chọn_value = thay thế (tùy chọn_value, 'http://acme.com', 'http://acme.dev') WHERE tùy chọn_ame '
Sau đó, họ sử dụng một Truy vấn SQL khác để thay thế tất cả các lần xuất hiện URL trong wp_posts
bảng, cụ thể là trong Nội dung bài viết
cột của mỗi hàng.
CẬP NHẬT wp_posts SET post_content = thay thế (post_content, 'http://acme.com', 'http://acme.dev');
Chạy các truy vấn này là một giải pháp khả thi, nhưng đồng thời, không thuận tiện để làm. Nó thậm chí có thể là thần kinh, xem cách cơ sở dữ liệu có thể biến haywire do sự giám sát đơn giản trong truy vấn.
Tận dụng WP-CLI
Một cách khác chúng ta có thể làm, và mà tôi thấy là một sự thay thế tiện dụng hơn, là tận dụng dòng lệnh WP-CLI. Điều này có nghĩa là bạn sẽ cần cài đặt WP-CLI.
Giả sử bạn đã cài đặt WP-CLI và có wp
lệnh có thể truy cập dưới dạng bí danh, điều hướng đến thư mục chứa tệp trang web WordPress của bạn.
Sau đó, chạy lệnh sau:
tìm kiếm wp thay thế 'http://acme.com "http://acme.dev
Tham số đầu tiên, 'http://acme.com'
, là mục cũ được thay thế bằng mục thứ hai, 'http://acme.dev'
.
Dòng lệnh sẽ tìm kiếm thông qua Tất cả các bảng trong cơ sở dữ liệu, không chỉ Nội dung bài viết
cột và wp_options
bảng, và thay thế mọi trường hợp của mục nhập thông qua các tham số của lệnh.
Như bạn có thể thấy từ ảnh chụp màn hình ở trên, tổng cộng 225 thay thế đã được thực hiện. Và chúng tôi đã thực hiện nó thông qua một dòng lệnh đơn giản.
Tôi nghĩ điều đáng nói là chúng ta có thể sử dụng tìm kiếm thay thế wp
lệnh, không chỉ để thay thế URL, mà bất kỳ phần nào của giá trị lưu trữ trong cơ sở dữ liệu là tốt. Chúng ta cũng có thể giới hạn thao tác vào một bảng nhất định bằng cách chuyển tên bảng làm tham số thứ tư, như sau:
tìm kiếm wp thay thế '.jpg ".webp' wp_posts
Chạy lệnh trên, nó sẽ chỉ tìm kiếm thông qua wp_posts
, bảng lưu trữ nội dung của chúng tôi - bài đăng, trang, v.v. - và thay thế phần mở rộng hình ảnh từ .jpg
đến .webp
.
WP-CLI làm cho một hoạt động SQL rối rắm trông trực quan hơn và bạn có thể làm việc với nó theo cách thuận tiện hơn. Nếu bạn muốn tinh chỉnh các lệnh của mình, hãy xem tài liệu của WP-CLI, cung cấp cho bạn danh sách các tùy chọn để thực hiện thao tác nâng cao hơn với tìm kiếm thay thế wp
chỉ huy.