Hướng dẫn khắc phục lỗi get_page_by_title trên WordPress 6.2.0 và Flatsome Theme chi tiết

Đã kiểm duyệt nội dung
Đánh giá
Khi nâng cấp website lên WordPress 6.2.0 và sử dụng Flatsome Theme, mình đã gặp lỗi liên quan đến get_page_by_title khiến một số chức năng không hoạt động như mong muốn. Sau khi kiểm tra và thử nhiều cách xử lý khác nhau, mình đã xác định được nguyên nhân và tìm ra giải pháp khắc phục hiệu quả mà không ảnh hưởng đến hệ thống. Trong bài viết này, mình sẽ chia sẻ lại toàn bộ quá trình xử lý thực tế để bạn có thể áp dụng nhanh chóng và tránh gặp lỗi tương tự.
Những điểm chính
Khi gặp lỗi liên quan đến get_page_by_title, mình nhận ra việc thay đổi trong core có thể ảnh hưởng trực tiếp đến theme và chức năng website. Để giúp bạn nắm rõ và xử lý hiệu quả, bài viết dưới đây sẽ cung cấp các nội dung gồm:
- Định nghĩa hàm get_page_by_title: Hiểu rõ định nghĩa và cơ chế hoạt động của hàm này trong việc lấy dữ liệu trang theo tiêu đề.
- Nguyên nhân lỗi: Nắm được lý do tại sao WordPress 6.2+ loại bỏ hàm này và khuyến khích chuyển sang WP_Query để tối ưu hiệu suất.
- Quy trình chuyển đổi: Biết cách thực hiện quy trình kỹ thuật để thay thế hàm cũ bằng đối tượng WP_Query chuẩn xác.
- Sửa lỗi trên Flatsome: Hướng dẫn chi tiết 3 bước sửa lỗi get_page_by_title cụ thể cho theme Flatsome phiên bản cũ.
- Giải pháp thay thế: Biết cách cập nhật theme hoặc sử dụng bản vá lỗi từ cộng đồng.
- Biết thêm Vietnix là nhà cung cấp dịch vụ hosting, VPS tốc độ cao dành cho doanh nghiệp.
- Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến lỗi get_page_by_title.

Hàm get_page_by_title là gì?
Hàm get_page_by_title() trong WordPress là hàm dùng để tìm và lấy ra một trang dựa trên tiêu đề trang mà bạn cung cấp. Về cơ chế hoạt động, khi bạn gọi hàm get_page_by_title('Tên Trang'), hệ thống sẽ quét qua bảng dữ liệu bài viết.
Nếu tìm thấy một trang có tiêu đề trùng khớp chính xác với chuỗi ký tự được cung cấp, hàm sẽ trả về đối tượng chứa dữ liệu của trang đó. Ngược lại, nếu không tìm thấy kết quả nào phù hợp, hàm sẽ trả về giá trị null. Hàm thường được dùng trong theme hoặc plugin khi cần lấy dữ liệu của một trang cố định theo tên, ví dụ như trang giới thiệu, trang liên hệ hoặc một trang cấu hình riêng mà không cần nhớ ID.

Trong quá trình tối ưu website WordPress, môi trường hosting đóng vai trò quan trọng trong việc đảm bảo website hoạt động ổn định sau mỗi lần cập nhật. Việc sử dụng WordPress Hosting được tối ưu sẵn giúp giảm thiểu xung đột plugin/theme, cải thiện tốc độ tải trang và đảm bảo hệ thống vận hành ổn định hơn. Dịch vụ Host WordPress tại Vietnix mang lại lợi thế về hiệu năng, độ tin cậy cao và hỗ trợ kỹ thuật liên tục, giúp doanh nghiệp yên tâm duy trì và phát triển website lâu dài. Liên hệ ngay!
- Cải thiện trải nghiệm người dùng và thứ hạng tìm kiếm
- Hiệu suất ổn định, yên tâm phát triển nội dung và kinh doanh
- Quà tặng theme và plugin bản quyền

Nguyên nhân hàm get_page_by_title bị loại bỏ khỏi phiên bản WordPress 6.2.0
Hàm get_page_by_title() hiện không còn được khuyến khích sử dùng vì đã bị đánh dấu là deprecated (đã bị loại bỏ) trong các phiên bản WordPress mới và sẽ bị loại bỏ trong tương lai. Thay vào đó, WordPress đề xuất sử dụng WP_Query để truy vấn trang theo tiêu đề vì cách này linh hoạt hơn, cho phép cấu hình nhiều điều kiện và tối ưu truy vấn tốt hơn.
Lý do chính khiến get_page_by_title() bị loại bỏ là vì hàm này có thể tạo ra những truy vấn thừa, làm tốn tài nguyên và ảnh hưởng hiệu suất website, đặc biệt trên site có nhiều dữ liệu. Trong khi đó, WP_Query cho phép kiểm soát chặt chẽ những gì cần lấy, giúp giảm tải cho database và tăng tốc độ xử lý. Tóm lại, việc loại bỏ get_page_by_title() và chuyển sang dùng WP_Query giúp chuẩn hóa cách truy vấn dữ liệu, cải thiện hiệu suất và giúp developer có nhiều lựa chọn hơn khi làm việc với bài viết và trang trong WordPress.

Quy trình kỹ thuật để chuyển đổi sang lớp WP_Query
Việc chuyển đổi từ hàm đơn lẻ sang lớp đối tượng WP_Query đòi hỏi sự chính xác để đảm bảo không làm thay đổi logic hoạt động của website:
- Rà soát mã nguồn: Bạn cần tìm kiếm toàn bộ các file trong theme và plugin đang sử dụng từ khóa
get_page_by_title. Đồng thời, bạn cần chú ý đến cả các Child Theme hoặc các filefunctions.phptùy chỉnh. - Thực hiện thay thế: Thay vì gọi một hàm ngắn gọn, bạn cần khởi tạo một đối tượng truy vấn mới bằng
WP_Query. Ngoài ra, bạn cần thiết lập các tham số tối ưu nhưno_found_rows => true(không đếm tổng số dòng) để giảm tải truy vấn. - Xử lý dữ liệu đầu ra: Sau khi khởi tạo truy vấn, bạn cần sử dụng vòng lặp kiểm tra
have_posts()và trích xuất dữ liệu bài viết đầu tiên tìm thấy. - Đặt lại dữ liệu: Bạn bắt buộc thêm dòng
wp_reset_postdata();sau khi kết thúc xử lý để đảm bảo biến toàn cục$postkhông bị thay đổi, tránh gây ảnh hưởng đến các nội dung khác trên trang.

Cách sửa lỗi get_page_by_title trên giao diện Flatsome
- Xác định vị trí file cần chỉnh sửa
- Thay thế mã lệnh trong hàm flatsome_smart_links
- Kiểm tra kết quả hiển thị
Khi cập nhật lên WordPress 6.2, website có thể bị trắng trang, vỡ giao diện hoặc hiện thông báo lỗi Deprecated function: get_page_by_title() is deprecated... Dưới đây là quy trình sửa lỗi thủ công nhanh và chuẩn xác nhất:
1. Xác định vị trí file cần chỉnh sửa
Để sửa lỗi, bạn cần truy cập vào mã nguồn của website thông qua FTP hoặc File Manager trên hosting. Bạn hãy tìm theo đường dẫn sau trong thư mục cài đặt WordPress:
/wp-content/themes/flatsome/inc/helpers/helpers-shortcode.php2. Thay thế mã lệnh trong hàm flatsome_smart_links
Bạn mở file helpers-shortcode.php lên và thực hiện các bước sau:
- Bước 1: Đầu tiên, bạn tìm kiếm hàm
function flatsome_smart_links. - Bước 2: Sau đó, bạn xóa toàn bộ đoạn code cũ chứa hàm
get_page_by_title. - Bước 3: Cuối cùng, bạn thay thế bằng đoạn code mới sử dụng
WP_Queryđã được tối ưu hóa dưới đây:
/* CODE MỚI - ĐÃ SỬA LỖI (FIXED BY VIETNIX) */
if ( ! function_exists( 'flatsome_smart_links' ) ) {
function flatsome_smart_links( $title ) {
// Khởi tạo truy vấn mới thay thế hàm cũ
$query = new WP_Query(
array(
'post_type' => 'page',
'title' => $title,
'post_status' => 'publish', // Chỉ lấy trang đã xuất bản để bảo mật
'posts_per_page' => 1,
'no_found_rows' => true,
'ignore_sticky_posts' => true,
'update_post_term_cache' => false,
'update_post_meta_cache' => false,
)
);
code
Code
if ( ! empty( $query->post ) ) {
$link = get_permalink( $query->post->ID );
wp_reset_postdata(); // Quan trọng: Reset lại data sau khi query
return $link;
}
return false;
}
}3. Kiểm tra kết quả hiển thị
Sau khi lưu lại file, bạn hãy quay lại website và tải lại trang (F5). Nếu website hiển thị lại bình thường tức là lỗi đã được sửa thành công. Nếu vẫn còn lỗi, bạn hãy kiểm tra xem có cài plugin Cache không và tiến hành xóa cache.
Sử dụng phiên bản Flatsome đã được vá lỗi sẵn
Nếu không tự tin vào khả năng chỉnh sửa code hoặc sợ làm ảnh hưởng đến website, bạn hãy cập nhật theme:
- Cập nhật lên phiên bản mới nhất: Nhà phát triển Flatsome (UX Themes) đã cho ra mắt bản vá lỗi chính thức trong các phiên bản 3.17.0 trở đi. Nếu có key bản quyền, bạn hãy vào phần Dashboard > Updates để nâng cấp.
- Sử dụng bản vá từ cộng đồng: Nếu đang dùng bản cũ và chưa thể nâng cấp ngay, bạn có thể tìm kiếm các file
helpers-shortcode.phpđã được cộng đồng lập trình viên sửa sẵn. Bạn chỉ cần tải file này về và ghi đè vào vị trí cũ trên hosting.
Lưu ý
Bạn hãy luôn nhớ sao lưu dữ liệu website trước khi thực hiện để tránh rủi ro mất dữ liệu.

Lựa chọn của chuyên gia: Nếu bạn đang phân vân giữa việc tự sửa code và cập nhật theme, mình khuyên bạn nên cập nhật Flatsome lên bản mới nhất (3.17.0+). Việc sửa code thủ công chỉ là giải pháp tạm thời. Bạn nên dùng bản quyền gốc và update thường xuyên để đảm bảo tương thích với lõi WordPress mới, đồng thời vá các lỗ hổng bảo mật tiềm ẩn.
Vietnix – Nhà cung cấp dịch vụ hosting, VPS tốc độ cao dành cho doanh nghiệp
Vietnix là nhà cung cấp dịch vụ web hosting và VPS tốc độ cao, mang đến nền tảng hạ tầng ổn định và hiệu suất tối ưu cho doanh nghiệp. Hệ thống được thiết kế để đảm bảo tốc độ truy cập nhanh, khả năng xử lý tốt khi lưu lượng tăng cao và dễ dàng mở rộng theo nhu cầu phát triển. Bên cạnh đó, dịch vụ còn đi kèm hỗ trợ kỹ thuật 24/7, giúp doanh nghiệp vận hành website và ứng dụng một cách liên tục, an toàn và hiệu quả. Liên hệ ngay!
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
Câu hỏi thường gặp
Có nên hạ cấp về WordPress 6.1 để tránh lỗi này không?
Tuyệt đối không nên. Việc hạ cấp WordPress xuống phiên bản cũ sẽ khiến website gặp phải nhiều lỗ hổng bảo mật nghiêm trọng đã được vá ở bản 6.2. Do đó bạn hãy sửa code hoặc cập nhật theme để đảm bảo an toàn cho dữ liệu của mình.
Lỗi này chỉ xảy ra trên theme Flatsome hay tất cả các theme khác?
Hàm get_page_by_title bị loại bỏ khỏi nhân WordPress, nên bất kỳ theme hoặc plugin nào còn sử dụng hàm này đều sẽ gặp lỗi. Nếu website của bạn dùng theme khác và gặp lỗi tương tự sau khi update, hãy áp dụng quy trình chuyển sang WP_Query như bài viết đã hướng dẫn.
Làm sao để kiểm tra website có đang sử dụng hàm bị loại bỏ này không?
Bạn có thể bật chế độ gỡ lỗi của WordPress bằng cách thêm dòng define( 'WP_DEBUG', true ); vào file wp-config.php. Khi đó, nếu website có theme hoặc plugin nào sử dụng hàm cũ, hệ thống sẽ hiển thị thông báo cảnh báo cụ thể để bạn kịp thời xử lý trước khi gây ra lỗi nghiêm trọng.
Việc WordPress loại bỏ hàm get_page_by_title trong phiên bản 6.2 giúp tối ưu hóa hiệu suất và bảo mật cho toàn bộ hệ sinh thái. Để khắc phục các lỗi phát sinh ban đầu, bạn hãy chủ động cập nhật code sang WP_Query, nâng cấp theme/plugin và kiểm tra, sao lưu định kỳ để giúp website ổn định, bảo mật và sẵn sàng cho các phiên bản WordPress mới trong tương lai. Cảm ơn bạn đã theo dõi bài viết!
THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM
Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày














