Parte de mi trabajo es crear sitios web de Wordpress. Por lo general, trabajo en mi computadora portátil hasta que tengo algo lo suficientemente bueno como para cargarlo en el servidor de prueba donde el cliente lo revisa.
Creo un VirtualHost para cada nuevo proyecto, por lo que siempre estoy trabajando con una instalación de Wordpress en un dominio que parece http://local.example.com/
, pero cuando el sitio se carga en el servidor de prueba (no controlado por mí), el dominio puede terminar siendo algo así http://testserver.com/arbitrary/path/example/
.
El problema es que si agrego un enlace personalizado a un menú que apunta, por ejemplo, /events/
funcionaría bien localmente creando un enlace a http://local.example.com/events/
, pero en el servidor de prueba, el enlace apuntará http://testserver/events/
, lo que obviamente no es correcto.
Lo que quiero es darle al enlace personalizado una URL que funcione tanto en mi entorno local como en el servidor de prueba.
Ya manejar el problema de cambiar el home
y siteurl
opciones de Wordpress por:
- cambiar esa configuración en la base de datos local
- creando un volcado de la base de datos
- actualizar la base de datos en el servidor
- Restaurando las opciones locales.
No quiero usar URL completas para los enlaces personalizados y tener que reemplazarlas con la URL del servidor cada vez que necesito actualizar la base de datos del servidor.
Para los enlaces dentro del contenido de la publicación, hay un complemento que resuelve el problema agregando dos códigos cortos: http://wordpress.org/extend/plugins/url-shortcodes/ , pero no he podido encontrar algo similar para los enlaces personalizados .
Respuestas:
También estaba buscando una solución para esto y encontré una simple.
Esto es lo que necesita colocar en el campo URL:
¡Funciona bien!
Saludos cordiales Chris
fuente
Puede usar el
nav_menu_link_attributes
filtro para inspeccionar y modificar el atributo href para cada elemento del menú antes de que salga.En este ejemplo, buscamos cualquier atributo href que comience con a
/
, y anteponemos la URL del sitio de prueba en ese caso:Puede crear un complemento simple con este código y activarlo solo en su servidor de prueba, o crear algún tipo de indicador que aplique condicionalmente este filtro cuando esté presente el entorno del sitio de prueba.
fuente
El uso de la
<base href=" ">
etiqueta en el meta del encabezado dará una URL base a todos los anclajes relativos en la página.Referencia:
https://www.w3.org/TR/html4/struct/links.html
12.4 Información de ruta: el elemento BASE
Enlaces personalizados relativos en wordpress:
si desea que la url del sitio sea la url base de todos los anclajes, agregue esto al tema / header.php dentro de
<head>
:<base href="<?php echo site_url(); ?>/">
Sé que podría llegar tarde pero podría ayudar a alguien más.
fuente
ehepperle.com/sites/in-progress/some-wp-site-root/
menos que establezca explícitamente la raíz del sitio. La velocidad de desarrollo web no mejora notablemente con labase
etiqueta, ya que cuando migra a otro sitio, tendrá que redefinir qué base es. Sin embargo, puedo ver el valor en la reducción de la longitud de los valores href.En una URL personalizada en la configuración del menú, es posible utilizar enlaces relativos a [blogurl]. El secreto es comenzar la URL relativa con un solo
/
. Cuando un único / inicia la URL personalizada, el sistema no antepondrá el típicohttp://
y luego el blogURL actual se generará en la URL de destino en el momento de la ejecución.EJEMPLO
Si desea ir a su página de inicio, simplemente colóquelo
/
como la URL personalizadaSi desea ir a la página de índice en la carpeta
bbforums
, colóquela/bbforums
como la URL personalizada.Esto le permite mover un sitio a un dominio de prueba sin tener que codificar el nuevo blogURL en todos los enlaces personalizados para los menús.
Por ejemplo:
si mi blog está
http://example.com
y quiero probarlo en un subdominio,http://test.example.com
el sitio se puede mover entre prueba y producción sin problemas de menú utilizando la convención de URL relativa mencionada anteriormente. He probado con éxito este enfoque utilizando el complemento XCloner para mover el sitio.fuente
Primero debe instalar este complemento para códigos abreviados de URL.
Agregue este código a su
functions.php
archivo en su tema:Luego debe llamar a la
wp_nav_menu
función desde los archivos de plantillas:Eso es. Luego vaya a la sección del menú de fondo.
Por ejemplo, si quiero dar la URL de la página a un enlace personalizado, lo agregaré así:
Ahora puede ir al front-end y verificar que el shortcode funcione.
fuente