Hướng dẫn xử lý lỗi get_page_by_title trên WordPress 6.2.0 và theme Flatsome

Nội dung chính cần nắm

 

Khi gặp lỗi với get_page_by_title, điều quan trọng là hiểu rõ bản chất vấn đề và cách xử lý phù hợp. Bài viết này sẽ giúp bạn:

 

  • Hiểu rõ hàm get_page_by_title là gì và cách nó hoạt động

 

  • Nắm được nguyên nhân khiến hàm này bị loại bỏ trong WordPress 6.2+

 

  • Biết cách chuyển đổi sang WP_Query đúng kỹ thuật

 

  • Thực hiện sửa lỗi trực tiếp trên theme Flatsome bản cũ

 

  • Áp dụng các phương án thay thế như cập nhật theme hoặc dùng bản vá

 

Hàm get_page_by_title hoạt động như thế nào?

 

Trong WordPress, get_page_by_title() là một hàm dùng để truy xuất một trang dựa trên tiêu đề mà bạn cung cấp. Khi gọi hàm với một chuỗi tiêu đề, hệ thống sẽ tìm trong cơ sở dữ liệu các bài viết hoặc trang có tiêu đề trùng khớp.

 

Nếu tìm thấy, hàm sẽ trả về một object chứa dữ liệu của trang đó. Ngược lại, nếu không có kết quả phù hợp, giá trị trả về sẽ là null. Hàm này thường được sử dụng khi cần lấy thông tin một trang cố định như trang giới thiệu, liên hệ mà không cần nhớ ID.

 

WordPress, WordPress 6.2.0, theme Flatsome

 

Vì sao get_page_by_title bị loại bỏ trong WordPress 6.2?

 

Từ WordPress 6.2 trở đi, get_page_by_title() đã bị đánh dấu là deprecated, nghĩa là không còn được khuyến khích sử dụng và có thể bị loại bỏ hoàn toàn trong tương lai.

 

Lý do chính là vì hàm này tạo ra truy vấn chưa tối ưu, dễ gây lãng phí tài nguyên, đặc biệt trên các website có dữ liệu lớn. Thay vào đó, WordPress khuyến nghị sử dụng WP_Query vì:

 

  • Cho phép tùy chỉnh truy vấn linh hoạt hơn

 

  • Kiểm soát tốt hiệu suất và dữ liệu trả về

 

  • Giảm tải cho database

 

Việc chuyển sang WP_Query giúp hệ thống hoạt động ổn định và hiệu quả hơn trong dài hạn.

 

WordPress, WordPress 6.2.0, theme Flatsome

 

Quy trình chuyển đổi sang WP_Query đúng chuẩn

 

Để thay thế hoàn toàn get_page_by_title, bạn cần thực hiện theo quy trình sau:

 

  1. Kiểm tra toàn bộ mã nguồn
    Tìm tất cả vị trí có sử dụng get_page_by_title trong theme, plugin, child theme hoặc file functions.php.
  2. Thay thế bằng WP_Query
    Khởi tạo một truy vấn mới bằng WP_Query và thiết lập các tham số cần thiết. Nên thêm no_found_rows => true để tối ưu hiệu suất.
  3. Xử lý dữ liệu trả về
    Sử dụng vòng lặp have_posts() để kiểm tra kết quả và lấy dữ liệu từ bài viết đầu tiên tìm được.
  4. Reset dữ liệu sau truy vấn
    Luôn thêm wp_reset_postdata(); sau khi xử lý xong để tránh ảnh hưởng đến biến $post toàn cục.

 

Cách sửa lỗi trên theme Flatsome

 

Sau khi nâng cấp WordPress, nếu website bị lỗi trắng trang, vỡ layout hoặc xuất hiện cảnh báo liên quan đến get_page_by_title, bạn có thể xử lý theo các bước sau:

 

Bước 1: Xác định file cần sửa

 

Truy cập vào hosting qua FTP hoặc File Manager, sau đó tìm đến đường dẫn:

 

/wp-content/themes/flatsome/inc/helpers/helpers-shortcode.php

 

Bước 2: Thay thế đoạn code lỗi

 

Mở file helpers-shortcode.php, sau đó:

 

  • Tìm hàm function flatsome_smart_links

 

  • Xóa đoạn code cũ có sử dụng get_page_by_title

 

  • Thay bằng đoạn code mới sử dụng WP_Query đã được tối ưu

 

WordPress, WordPress 6.2.0, theme Flatsome

 

Bước 3: Kiểm tra lại website

 

Sau khi chỉnh sửa và lưu file:

 

  • Reload lại website (F5)

 

  • Nếu site hoạt động bình thường là đã sửa thành công

 

  • Nếu vẫn lỗi, hãy kiểm tra và xóa cache nếu đang dùng plugin cache

 

Giải pháp thay thế an toàn hơn

 

Nếu bạn không muốn can thiệp trực tiếp vào code, có thể chọn các cách sau:

 

  • Cập nhật theme Flatsome
    Các phiên bản từ 3.17.0 trở lên đã được nhà phát triển vá lỗi. Nếu có bản quyền, bạn có thể cập nhật trực tiếp trong Dashboard.

 

  • Sử dụng file đã được sửa từ cộng đồng
    Trong trường hợp chưa thể update, bạn có thể tìm file helpers-shortcode.php đã được chỉnh sửa sẵn và upload ghi đè lên file cũ.

 

 

Việc này giúp bạn xử lý lỗi nhanh mà không cần thao tác nhiều với code.

 HỖ TRỢ TRỰC TUYẾN