- สถานะ
- แก้ไขแล้ว
- รายงานสำหรับ
- WPML Multilingual CMS 3.1.9.5
- แก้ไขใน
- 3.2
ภาพรวมของปัญหา
เมื่อหน้าหลักตั้งแต่หนึ่งหน้าขึ้นไปมีหน้าย่อยที่ต่างกันแต่ใช้ slug เดียวกัน การเปิดหน้าย่อยหน้าใดหน้าหนึ่งจะเปลี่ยนเส้นทางไปยังหน้าที่ไม่ถูกต้อง
การใช้ slug ซ้ำในหน้าย่อยดูเหมือนจะทำให้เกิดการเปลี่ยนเส้นทางที่ผิดพลาดในส่วนหน้าเว็บไซต์
ตัวอย่าง:
- หน้า A
- child-aa
- child-ab
- หน้า B
- child-aa (เป็นคนละหน้า แต่ใช้ slug เดียวกับ 1.1)
- child-bb
วิธีแก้ปัญหาชั่วคราว
ปัญหานี้จะได้รับการแก้ไขใน WPML 3.2
ในระหว่างนี้ คุณสามารถใช้วิธีแก้ปัญหาชั่วคราวดังต่อไปนี้
โปรดทราบว่า วิธีนี้ใช้ได้กับ slug ของหน้าลูกที่ซ้ำกันเท่านั้น ตราบใดที่หน้าแม่ไม่ได้ใช้ชื่อเดียวกับหน้าลูก
- สำรองข้อมูลเว็บไซต์ของคุณแบบเต็มรูปแบบ หากเป็นไปได้ ให้ลองทำขั้นตอนนี้ในสำเนาเว็บไซต์ของคุณที่ไม่ได้ใช้งานจริงก่อน
- เปิด
sitepress.class.php - ไปที่บรรทัด 7804: ซึ่งควรจะมีเพียง
// Adjust page name - แทนที่บล็อกโค้ดนี้ (บรรทัดที่ 7804 ถึง 7828:
// Adjust page name if ( isset( $q->query_vars[ 'pagename' ] ) && !empty( $q->query_vars[ 'pagename' ] ) ) { // find the page with the page name in the current language. $pagename = explode ( '/', $q->query_vars[ 'pagename' ] ); $pagename = array_pop ( $pagename ); $pid = $wpdb->get_var( $wpdb->prepare( " SELECT ID FROM $wpdb->posts p JOIN {$wpdb->prefix}icl_translations t ON p.ID = t.element_id AND t.element_type='post_page' WHERE p.post_name=%s AND t.language_code = %s ", $pagename, $current_language ) ); if ( $pid ) { $q->query_vars[ 'page_id' ] = $pid; // We have found the page id unset( $q->query_vars[ 'pagename' ] ); if ( $q->query_vars[ 'page_id' ] == get_option( 'page_for_posts' ) ) { // it's the blog page. $q->is_page = false; // $wp_query->is_page = false; $q->is_home = true; // $wp_query->is_home = true; $q->is_posts_page = true; // $wp_query->is_posts_page = true; } } }
ด้วยบล็อกนี้:// Adjust page name if ( isset( $q->query_vars[ 'pagename' ] ) && !empty( $q->query_vars[ 'pagename' ] ) ) { // find the page with the page name in the current language. $pid = $wpdb->get_var( $wpdb->prepare( " SELECT ID FROM $wpdb->posts p JOIN {$wpdb->prefix}icl_translations t ON p.ID = t.element_id AND element_type='post_page' WHERE p.post_name=%s AND t.language_code = %s ", $q->query_vars[ 'pagename' ], $current_language ) ); if ( $pid ) { $q->query_vars[ 'page_id' ] = $pid; // We have found the page id unset( $q->query_vars[ 'pagename' ] ); if ( $q->query_vars[ 'page_id' ] == get_option( 'page_for_posts' ) ) { // it's the blog page. $q->is_page = false; // $wp_query->is_page = false; $q->is_home = true; // $wp_query->is_home = true; $q->is_posts_page = true; // $wp_query->is_posts_page = true; } } } - บันทึก
- โหลดเว็บไซต์ใหม่