Trang chủ » WordPress » Tìm hàng loạt và thay thế cơ sở dữ liệu WordPress - Cách dễ dàng

    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 webnhà 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.

    IMAGE: Sequel Pro, tìm kiếm giá trị cơ sở dữ liệu

    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 webnhà 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ế wpchỉ huy.