WPML
Status
Resolvido
Relatado para
WPML Multilingual CMS 4.5.8
Resolvido em
4.5.9

Visão geral do problema

Em determinados ambientes de hospedagem, você notará que as folhas de estilo do WPML não carregam corretamente. Se você verificar o console do navegador, notará que as folhas de estilo apontam para a pasta /ontent/ em vez de /wp-content/. Por exemplo:

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

Solução alternativa

Faça um backup completo do seu site antes de prosseguir.

  1. Abra o arquivo /wp-content/plugins/sitepress-multilingual-cms/classes/class-wpml-file.php.
  2. Procure a linha 66:
  3. Substitua:
    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 os problemas conhecidos →