get_template_directory_uri() devuelve http en lugar de https en el sitio SSL

2 minutos de lectura

avatar de usuario
dimentica

Sé que el tema ya se ha discutido, pero parece que no se encontró ninguna solución. Este es mi caso: tengo un sitio de wordpress que ahora tiene SSL. Sin embargo, en el tema se agregan recursos de la siguiente manera:

wp_enqueue_script( 'spectrumwp-conditional', get_template_directory_uri() . '/js/vendor/conditional.js', array('jquery'), null, true);

pero get_template_directory_uri() devuelve la URL con http, no https.

¿Puedes ayudarme a resolver esto?

Editar:
Agregué esto a mi archivo wp-config.php

$_SERVER['HTTPS']='on';

Los enlaces a los recursos se muestran con https:// pero en lugar de, por ejemplo

https://www.ejemplo.com/wp-content/plugins/

tengo

https://www.ejemplo.com/plugins/LayerSlider/

por ejemplo, falta la carpeta wp-content

última actualización:

descomentar

 define('FORCE_SSL_ADMIN', true);

y agregando

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
 {  $_SERVER['HTTPS']='on'; }

justo antes de la línea

/* That's all, stop editing! Happy blogging. */

solucionado el problema! Solo, recomiendo $_SERVER[‘HTTP_X_FORWARDED_PROTO’] no se utiliza, ya que puede no ser lo suficientemente preciso.

¡Resuelto!

  • La última parte que describiste también me la arregló, gracias. Aunque todavía no entiendo por qué era necesario hacerlo.

    – El Verdadero TDF

    24 de diciembre de 2020 a las 8:21

Debe usar is_ssl() para verificar si el sitio está ejecutando https:// o http://

Aquí está el gancho para verificar y redirigir:

function check_if_https() {
if ( !is_ssl() ) {
    wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 );
    exit();
  }
}
add_action ( 'template_redirect', 'check_if_https', 1 );

  • ¡Gracias por tu rápida respuesta! Cuando agrego esto a mi archivo functions.php, el sitio no se carga y aparece un error que dice “Demasiados redireccionamientos”.

    – Diméntica

    21 de enero de 2017 a las 11:14

  • Bien, puedes intentar cambiar la URL del sitio ahora. codex.wordpress.org/Cambiando_La_URL_del_Sitio Cambie las URL del sitio en wp-config.php y las funciones del tema.php según se indica en la URL

    – Mukesh Ram

    21 de enero de 2017 a las 11:18


  • Agregué los cambios a los archivos wp-config y functions.php, pero obtengo La página no se está redirigiendo correctamente

    – Diméntica

    21 de enero de 2017 a las 11:31

Vaya a Configuración -> General y verifique la URL del sitio.

Parece que el problema que tiene es que este valor sigue siendo HTTP, no HTTPS. Acérquese a este cambio con precaución. Asegúrese de tener una copia de seguridad que funcione y una comprensión completa de por qué esta URL debe cambiar, así como el impacto que tendrá.

get_template_directory_uri() proporcionará automáticamente un enlace HTTPS cuando la URL del sitio esté configurada correctamente.

  • Tengo “una comprensión completa” y lo hice mil veces. Obviamente wordpress no reconoce el https

    – Diméntica

    21 de enero de 2017 a las 15:02

  • Entonces te sugiero que intentes generar el valor de site_url en PHP. No es una llamada a la opción sino a la función.

    – Nathan Dawson

    21 de enero de 2017 a las 15:10

¿Ha sido útil esta solución?