WPML
สถานะ
รอผู้พัฒนา
ปลั๊กอิน/ธีมที่เกี่ยวข้อง
Custom Permalinks
แท็กหัวข้อ
Compatibility

ภาพรวมของปัญหา

เมื่อใช้ Custom Permalinks ร่วมกับ WPML ลิงก์ภายในที่ไปยังหน้าที่แปลอาจชี้ไปยังหน้าภาษาต้นฉบับแทนที่จะเป็นหน้าที่แปล เมื่อหน้าปลายทางใช้ลิงก์ถาวรแบบกำหนดเอง

วิธีแก้ปัญหาชั่วคราว

โปรดตรวจสอบให้แน่ใจว่าได้สำรองข้อมูลไซต์ทั้งหมดก่อนดำเนินการต่อ

วิธีแก้ปัญหาชั่วคราว – ส่วนที่ 1


  • เปิดไฟล์ …/wp-content/plugins/custom-permalinks/includes/class-custom-permalinks-frontend.php

  • ค้นหาบรรทัดที่ 165

  • แทนที่:
    	public function wpml_permalink_filter( $permalink, $language_code ) {
    		$custom_permalink   = $permalink;
    
            


  • ด้วย:
    	public function wpml_permalink_filter( $permalink, $language_code ) {
    		$custom_permalink   = $permalink;
    		$language_code = apply_filters( 'wpml_current_language', NULL ); 
            

วิธีแก้ปัญหาชั่วคราว – ส่วนที่ 2


  • ในไฟล์เดียวกัน (class-custom-permalinks-frontend.php)

  • ค้นหาบรรทัดที่ 913

  • แทนที่:
    	public function custom_page_link( $permalink, $page ) {
    		$custom_permalink = get_post_meta( $page, 'custom_permalink', true );
    		if ( $custom_permalink ) {
    			$language_code = apply_filters(
    				'wpml_element_language_code',
    				null,
    				array(
    					'element_id'   => $page,
    					'element_type' => 'page',
    				)
    			);
    
    			$permalink = $this->wpml_permalink_filter(
    				$custom_permalink,
    				$language_code
    			);
    
            


  • ด้วย:
    		public function custom_page_link( $permalink, $page ) {
    		$custom_permalink = get_post_meta( $page, 'custom_permalink', true );
    		if ( $custom_permalink ) {
    			$language_code = apply_filters(
    				'wpml_element_language_code',
    				null,
    				array(
    					'element_id'   => $page,
    					'element_type' => 'page',
    				)
    			);
    			$page_translated = apply_filters(
    				'wpml_object_id',
    				$page,
    				'page',
    				$language_code
    			);
    			$custom_translated_permalink = get_post_meta( $page_translated, 'custom_permalink', true );
    			if ( $custom_translated_permalink ) {
    				$custom_permalink = $custom_translated_permalink;
    			}
    			$permalink = $this->wpml_permalink_filter(
    				$custom_permalink,
    				$language_code
    			);
    
            

ปัญหาที่ทราบแล้วทั้งหมด →