- Trạng thái
- Đã giải quyết
- Được báo cáo cho
- WPML Multilingual CMS 3.3.5
- Đã giải quyết trong
- 3.4
Tổng quan về lỗi
Lỗi 404:
“Failed to load resource: the server responded with a status of 404 (Not Found)”
khi gọi admin_url( ‘admin-ajax.php’ ).
Sự cố xuất hiện khi bạn sử dụng cài đặt “Một tên miền khác nhau cho mỗi ngôn ngữ”.
Khi bạn gọi admin_url( ‘admin-ajax.php’ ), bạn sẽ thấy kết quả tương tự như sau:
http://secondary-language-domain.com/secondary-lang-code/wp-admin/admin-ajax.php
thay vì:
http://secondary-language-domain.com/wp-admin/admin-ajax.php.
Điều này dẫn đến lỗi 404:
“Failed to load resource: the server responded with a status of 404 (Not Found)”.
Lỗi này sẽ được khắc phục trong phiên bản phát hành tiếp theo.
Giải pháp tạm thời
Đăng nhập vào FTP của bạn và tìm tệp wpml-url-converter.class.php nằm ở wp-content/plugins/sitepress-multilingual-cms/inc/url-handling/wpml-url-converter.class.php.
Tìm hàm admin_url_filter (khoảng dòng 39) và thay đổi đoạn mã sau:
public function admin_url_filter( $url, $path ) {
if ( 'admin-ajax.php' === $path ) {
$url = $this->get_admin_ajax_url( $url );
}
return $url;
}thành:
public function admin_url_filter( $url, $path ) { if ( ( strpos( $url, 'http://' ) === 0 || strpos( $url, 'https://' ) === 0 ) && 'admin-ajax.php' === $path && $this->wpml_wp_api->is_front_end() ) { global $sitepress; $url = $this->convert_url( $url, $sitepress->get_current_language() ); } return $url; }
Luôn nhớ tạo bản sao lưu trước khi thay đổi bất kỳ điều gì trong các tệp của bạn.