Siempre me ha resultado frustrante en WordPress que las imágenes, archivos, enlaces, etc. se inserten en WordPress con una URL absoluta en lugar de una URL relativa. Una URL relativa es mucho más conveniente para cambiar nombres de dominio, cambiar entre http y https, etc. Hoy descubrí que si define WP_CONTENT_URL con una URL relativa, cuando inserta archivos en las publicaciones, usan la URL relativa para el src en lugar de la URL absoluta. . ¡Justo lo que siempre quise! Pero la documentación oficial de WordPress dice que debe usar un URI completo si está definiendo WP_CONTENT_URL.
Establezca WP_CONTENT_URL en el URI completo de este directorio (sin barra diagonal), por ejemplo
define( 'WP_CONTENT_URL', 'http://example/blog/wp-content');
Todo parece funcionar bien cuando uso una URL relativa, por ejemplo
define( 'WP_CONTENT_URL', '/my-content-folder');
Pero, ¿hay algún problema con el uso de un URI relativo? Solo estoy pensando que debe haber una razón para que WordPress indique que debe definirse con un URI completo.
Respuestas:
Creo que este es el tipo de pregunta que solo un desarrollador central podría / debería responder. Investigué y encontré el ticket principal # 17048: las URL entregadas al navegador deben ser relativas a la raíz . Donde podemos encontrar las razones explicadas por Andrew Nacin, desarrollador principal principal. También enlaza a este hilo [wp-hackers] . En ambos enlaces, estas son las citas clave sobre por qué WP no usa URL relativas:
Boleto básico:
[wp-hackers] hilo
Y, en una nota personal, más de una vez he encontrado temas y complementos mal codificados que simplemente se rompen cuando
WP_CONTENT_URL
se definen.No saben que esto se puede configurar y asumen que esto es cierto: WP.URL / wp-content / WhatEver , y no siempre es así. Y algo se romperá en el camino.
El plug-in URL relativos (en relación en EDSE respuesta 's ), se aplica la función
wp_make_link_relative
de una serie de filtros en el gancho de la accióntemplate_redirect
. Es un código bastante simple y parece una buena opción.fuente
WP_CONTENT_URL
no parece estar destinada a (aunque permite) establecer URL relativas, el complemento parece ser la mejor opción. ¿Hay algún caso de prueba en el que un complemento se rompa al configurarloWP_CONTENT_URL
pero funcione bien cuando se usa el complemento?/
y los URI relativos (para usar en el interior<a>
) nunca comienzan conhttp://
.fuente
Estoy de acuerdo con Rup. Supongo que la razón principal es evitar confusiones en rutas relativas. Creo que WordPress puede funcionar desde cero con rutas relativas, pero el problema puede surgir cuando se usan múltiples complementos, cómo se configura el tema, etc.
Una vez usé este complemento para rutas relativas, cuando trabajaba en servidores de prueba:
fuente
WP_CONTENT_URL
relativo y no sucumbir a ningún escollo con su propio enfoque. Lo que me gustaría saber es si en realidad existe un error conocido al hacerWP_CONTENT_URL
pariente./wp-content/some-file.jpg
es una ruta absoluta, no una ruta relativa. No hay confusión posible. Es la inclusión del protocolo y el nombre de dominio en la URL absoluta lo que hace que WordPress sea inútil sin justificación. Para implementar un sitio de WP desde el desarrollo hasta la puesta en escena para vivir, tengo que ejecutar un script de búsqueda y reemplazo en los nombres de dominio en un volcado de base de datos. Creo que el problema es que está diseñado para editar contenido en producción que funciona para blogs (que es para lo que está hecho) pero no para muchos sitios web comerciales./wp-content/some-file.jpg
ser un camino absoluto. Para otros que lean su comentario en el futuro, tenga en cuenta que una ruta relativa a la web es una ruta que tiene el protocolo y el dominio excluidos de la ruta. Por lo tanto,/wp-content/some-file.jpg
ywp-content/some-file.jpg
son relativos, y el/
principio del primer ejemplo tiene el propósito de hacer referencia al directorio raíz accesible del titular de la cuenta o servidor.Lo resolví en mi sitio haciendo esto en functions.php
Tomé parte de un complemento, lo corté en pedazos y lo hice. Reemplazó TODOS los enlaces en mi sitio (menús, css, scripts, etc.) y todo estaba funcionando.
fuente
En Configuración => Medios, hay una opción para 'Ruta URL completa para archivos'. Si establece esto en la ruta del directorio de medios predeterminado '/ wp-content / uploads' en lugar de en blanco, insertará rutas relativas, por ejemplo, '/wp-content/uploads/2020/06/document.pdf'.
No estoy seguro si hace que todos los enlaces sean relativos, por ejemplo, a publicaciones, pero al menos maneja los medios, que probablemente es lo que preocupa a la mayoría de la gente.
fuente
debe usar get_home_url (), entonces sus enlaces son absolutos, pero no afecta si cambia la URL del sitio
fuente
Lo que creo que haces es mientras cambias los nombres de dominio, el archivo de volcado de SQL que tienes puedes reemplazar todas las instancias del nombre de dominio antiguo por uno nuevo. Esta es la única opción disponible, ya que no hay complementos que lo ayuden a hacer esto.
Esta es la forma más rápida ...
fuente
Hay una manera facil
En lugar de
/pagename/
usarindex.php/pagename/
o si no usa enlaces permanentes, haga lo siguiente:Enviar
Página
Categoría
Más información aquí: http://codex.wordpress.org/Linking_Posts_Pages_and_Categories
fuente