WPML
סטטוס
נפתר על ידי המפתח
תוסף/ערכת עיצוב קשורים
Hestia Pro
תגיות נושא
Compatibility

סקירה כללית של התקלה

אם אתה משתמש בערכת העיצוב Hestia Pro, ייתכן שתיתקל בבעיה שבה פריסת הכותרת התחתונה המותאמת אישית שנוצרה תחת עיצוב > פריסות מותאמות אישית מוצגת רק בשפת ברירת המחדל, ללא קשר לתרגומים הזמינים עבור הפריסה.

פתרון עוקף

אנא ודא שיש לך גיבוי מלא של האתר לפני שתמשיך.


  • פתח את הקובץ …/wp-content/themes/hestia-pro/inc/addons/modules/custom_layouts/class-hestia-custom-layouts-module.php.

  • חפש את שורה 210.

  • החלף את הקוד הזה:
    	private function map_custom_layouts() {
    		if ( $this->is_builder_preview() ) {
    			return true;
    		}
    		$cache = get_transient( 'custom_layouts_posts_map' );
    		if ( ! empty( $cache ) ) {
    			self::$post_map = $cache;
    
    			return true;
    		}
    		$query = new WP_Query(
    			array(
    				'post_type'              => 'hestia_layouts',
    				'posts_per_page'         => 100,
    				'no_found_rows'          => true,
    				'update_post_meta_cache' => false,
    				'update_post_term_cache' => false,
    				'fields'                 => 'ids',
    				'post_status'            => 'publish',
    			)
    		);
    		if ( ! $query->have_posts() ) {
    			return false;
    		}
    		foreach ( $query->posts as $pid ) {
    			$layout   = get_post_meta( $pid, 'custom-layout-options-layout', true );
    			$priority = get_post_meta( $pid, 'custom-layout-options-priority', true );
    			if ( $layout === 'hooks' ) {
    				$layout = get_post_meta( $pid, 'custom-layout-options-hook', true );
    			}
    			self::$post_map[ $layout ][ $pid ] = $priority;
    		}
    		set_transient( 'custom_layouts_posts_map', self::$post_map, DAY_IN_SECONDS );
    
    		return true;
    	}

  • בקוד הבא:
    	private function map_custom_layouts() {
    		if ( $this->is_builder_preview() ) {
    			return true;
    		}
    
    		// Get the current language code
    		$current_language = apply_filters('wpml_current_language', NULL); // Fallback to WPML's current language
    
    		// Modify the transient key to include the current language
    		$wpml_transient_key = 'custom_layouts_posts_map_' . $current_language;
    
    		$cache = get_transient( $wpml_transient_key );
    		if ( ! empty( $cache ) ) {
    			self::$post_map = $cache;
    
    			return true;
    		}
    		$query = new WP_Query(
    			array(
    				'post_type'              => 'hestia_layouts',
    				'posts_per_page'         => 100,
    				'no_found_rows'          => true,
    				'update_post_meta_cache' => false,
    				'update_post_term_cache' => false,
    				'fields'                 => 'ids',
    				'post_status'            => 'publish',
    			)
    		);
    		if ( ! $query->have_posts() ) {
    			return false;
    		}
    		foreach ( $query->posts as $pid ) {
    			$layout   = get_post_meta( $pid, 'custom-layout-options-layout', true );
    			$priority = get_post_meta( $pid, 'custom-layout-options-priority', true );
    			if ( $layout === 'hooks' ) {
    				$layout = get_post_meta( $pid, 'custom-layout-options-hook', true );
    			}
    			self::$post_map[ $layout ][ $pid ] = $priority;
    		}
    		set_transient( $wpml_transient_key, self::$post_map, DAY_IN_SECONDS );		
    
    		return true;
    	}
  • לאחר מכן, מחק את ה־transients.

כל התקלות הידועות →