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.

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ề
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.

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:
-
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.
-
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.
-
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.
-
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

Bước 3: Kiểm tra lại website
Sau khi chỉnh sửa và lưu file:
-
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.