Une partie de mon travail consiste à créer des sites Web Wordpress. Je travaille généralement sur mon ordinateur portable jusqu'à ce que j'aie quelque chose d'assez bon pour être téléchargé sur le serveur de test où le client l'examine.
Je crée un VirtualHost pour chaque nouveau projet, donc je travaille toujours avec une installation Wordpress dans un domaine qui ressemble http://local.example.com/
, mais lorsque le site est téléchargé sur le serveur de test (non contrôlé par moi), le domaine peut finir par ressembler à quelque chose http://testserver.com/arbitrary/path/example/
.
Le problème est que si j'ajoute un lien personnalisé à un menu qui pointe, par exemple, /events/
cela fonctionnerait bien en créant localement un lien vers http://local.example.com/events/
, mais dans le serveur de test, le lien pointera vers http://testserver/events/
, ce qui n'est évidemment pas correct.
Ce que je veux, c'est donner au lien personnalisé une URL qui fonctionnerait à la fois sur mon environnement local et sur le serveur de test.
Je gère déjà le problème de la modification des options home
et siteurl
Wordpress en:
- modification de ces paramètres sur la base de données locale
- création d'un vidage de la base de données
- mettre à jour la base de données sur le serveur
- restaurer les options locales.
Je ne veux pas utiliser d'URL complètes pour les liens personnalisés et devoir les remplacer par l'URL du serveur chaque fois que je dois mettre à jour la base de données du serveur.
Pour les liens à l'intérieur du contenu du post, il existe un plugin qui résout le problème en ajoutant deux shortcodes: http://wordpress.org/extend/plugins/url-shortcodes/ , mais je n'ai pas pu trouver quelque chose de similaire pour les liens personnalisés .
Réponses:
Je cherchais également une solution pour cela et j'en ai trouvé une simple.
Voici ce que vous devez placer dans le champ URL:
Cela fonctionne très bien!
Cordialement, Chris
la source
Vous pouvez utiliser le
nav_menu_link_attributes
filtre pour inspecter et modifier l'attribut href pour chaque élément de menu avant sa sortie.Dans cet exemple, nous recherchons les attributs href commençant par un
/
et ajoutons l'URL du site de test dans ce cas:Vous pouvez créer un plugin simple avec ce code et l'activer uniquement sur votre serveur de test, ou créer une sorte d'indicateur qui applique conditionnellement ce filtre lorsque l'environnement du site de test est présent.
la source
L'utilisation de la
<base href=" ">
balise dans la méta-tête donnera une URL de base à toutes les ancres relatives de la page.Référence:
https://www.w3.org/TR/html4/struct/links.html
12.4 Informations sur le chemin: l'élément BASE
Liens personnalisés relatifs dans wordpress:
si vous voulez que l'URL du site soit l'URL de base de toutes les ancres, ajoutez ceci au theme / header.php dans
<head>
:<base href="<?php echo site_url(); ?>/">
Je sais que ça pourrait être en retard pour vous mais je pourrais aider quelqu'un d'autre.
la source
ehepperle.com/sites/in-progress/some-wp-site-root/
sauf si vous définissez explicitement la racine du site. La vitesse de développement Web n'est pas sensiblement améliorée à l'aide de labase
balise, car lorsque vous migrez vers un autre site, vous devrez redéfinir ce qu'est la base. Cependant, je peux voir la valeur de la réduction de la longueur des valeurs href.Sur une URL personnalisée dans la configuration du menu, il est possible d'utiliser des liens relatifs vers le [blogurl]. Le secret est de démarrer l'URL relative avec un seul
/
. Lorsqu'un seul / démarre l'URL personnalisée, le système ne fera pashttp://
précéder l'URL standard, puis l'URL blog en cours sera générée dans l'URL cible au moment de l'exécution.EXEMPLE
Si vous souhaitez accéder à votre page d'accueil, mettez simplement
/
l'URL personnaliséeSi vous souhaitez accéder à la page d'index du dossier,
bbforums
mettez-la/bbforums
comme URL personnalisée.Cela vous permet de déplacer un site vers un domaine de test sans avoir à coder en dur le nouveau blogURL dans tous les liens personnalisés pour les menus.
Par exemple:
si mon blog est
http://example.com
et que je veux le tester dans un soushttp://test.example.com
- domaine, le site peut être déplacé entre le test et la production sans problèmes de menu en utilisant la convention d'URL relative indiquée ci-dessus. J'ai testé avec succès cette approche en utilisant le plugin XCloner pour déplacer le site.la source
Vous devez d'abord installer ce plugin pour les shortcodes URL.
Ajoutez ce code à votre
functions.php
fichier dans votre thème:Ensuite, vous devez appeler la
wp_nav_menu
fonction à partir des fichiers de modèles:C'est ça. Accédez ensuite à la section du menu principal.
Par exemple, si je veux donner l'URL de la page à un lien personnalisé, je vais l'ajouter comme ceci:
Vous pouvez maintenant aller sur le front-end et vérifier que le shortcode fonctionne.
la source