WPML
Estado
Resuelto
Notificado para
WPML Multilingual CMS 4.5.8
Resuelto en
4.5.9

Resumen del problema

En ciertos entornos de alojamiento, notará que las hojas de estilo de WPML no se cargan correctamente. Si revisa la consola del navegador, notará que las hojas de estilo apuntan a la carpeta /ontent/ en lugar de /wp-content/. Por ejemplo:

https://domain.com/ontent/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-list-horizontal/style.css?ver=1

Solución alternativa

Haga una copia de seguridad completa de su sitio antes de continuar.

  1. Abra el archivo /wp-content/plugins/sitepress-multilingual-cms/classes/class-wpml-file.php.
  2. Busque la línea 66:
  3. Reemplace:
    public function get_uri_from_path( $path ) {
        $base = null;
      
        if ( $this->wp_api->defined( 'WP_CONTENT_DIR' ) && $this->wp_api->defined( 'WP_CONTENT_URL' ) ) {
            $base_path = $this->fix_dir_separator( $this->wp_api->constant( 'WP_CONTENT_DIR' ) );
      
            if ( 0 === strpos( $path, $base_path ) ) {
                $base = array(
                    'path' => $base_path,
                    'uri'  => $this->wp_api->constant( 'WP_CONTENT_URL' ),
                );
            }
        }
      
        if ( ! $base ) {
            $base = array(
                'path' => $this->wp_api->constant( 'ABSPATH' ),
                'uri'  => site_url(),
            );
        }
      
        $base['uri']   = preg_replace( '/(^https?:)/', '', $base['uri'] );
        $relative_path = substr( $path, strlen( $base['path'] ) );
        $relative_path = str_replace( array( '/', '' ), '/', $relative_path );
        $relative_path = ltrim( $relative_path, '/' );
      
        return trailingslashit( $base['uri'] ) . $relative_path;
    }
  4. Por:
    	public function get_uri_from_path( $path ) {
    		$base = null;
    
    		if ( $this->wp_api->defined( 'WP_CONTENT_DIR' ) && $this->wp_api->defined( 'WP_CONTENT_URL' ) ) {
    			$base_path = $this->fix_dir_separator( $this->wp_api->constant( 'WP_CONTENT_DIR' ) );
    
    			if ( 0 === strpos( $path, $base_path ) ) {
    				$base = array(
    					'path' => $base_path,
    					'uri'  => $this->wp_api->constant( 'WP_CONTENT_URL' ),
    				);
    			}
    		}
    
    		if ( ! $base ) {
    			$base = array(
    				'path' => $this->wp_api->constant( 'ABSPATH' ),
    				'uri'  => site_url(),
    			);
    			if ( 0 !== strpos( $path, $base_path ))
    			{
    				$search = (WPML_PLUGIN_PATH);
    				$pathexplode = explode($this->wp_api->constant( 'DIRECTORY_SEPARATOR' ), WPML_PLUGIN_PATH);
    				$pathexplode = array_slice($pathexplode, -3, 3, false);
    				$replace = $pathexplode[0] .$this->wp_api->constant( 'DIRECTORY_SEPARATOR' ) . $pathexplode[1].$this->wp_api->constant( 'DIRECTORY_SEPARATOR' ).WPML_PLUGIN_FOLDER;
    				$base["path"] = str_replace ($replace, "", $search);
    			}
    		}
    
    		$base['uri']   = preg_replace( '/(^https?:)/', '', $base['uri'] );
    		$relative_path = substr( $path, strlen( $base['path'] ) );
    		$relative_path = str_replace( array( '/', '\' ), '/', $relative_path );
    		$relative_path = ltrim( $relative_path, '/' );
    
    		return trailingslashit( $base['uri'] ) . $relative_path;
    	}

Todos los problemas conocidos →