Częścią mojej pracy jest tworzenie stron internetowych Wordpress. Zwykle pracuję na laptopie, dopóki nie mam czegoś wystarczająco dobrego, aby przesłać je na serwer testowy, na którym klient go sprawdza.
Tworzę VirtualHost dla każdego nowego projektu, więc zawsze pracuję z instalacją Wordpress w domenie, która wygląda http://local.example.com/
, ale kiedy strona zostanie przesłana na serwer testowy (nie kontrolowany przeze mnie), domena może być czymś podobnym http://testserver.com/arbitrary/path/example/
.
Problem polega na tym, że jeśli dodam niestandardowy link do menu, które wskazuje na przykład, /events/
działałoby to dobrze lokalnie, tworząc link do http://local.example.com/events/
, ale na serwerze testowym link wskaże http://testserver/events/
, co oczywiście nie jest poprawne.
Chcę, aby niestandardowy link miał adres URL, który działałby zarówno w moim środowisku lokalnym, jak i na serwerze testowym.
Rozwiązuję już problem zmiany opcji home
i siteurl
Wordpressa poprzez:
- zmiana tych ustawień w lokalnej bazie danych
- tworzenie zrzutu bazy danych
- zaktualizuj bazę danych na serwerze
- przywracanie opcji lokalnych.
Nie chcę używać pełnych adresów URL do niestandardowych łączy i muszę zamieniać je na adresy URL serwera za każdym razem, gdy muszę aktualizować bazę danych serwera.
W przypadku linków w treści postu istnieje wtyczka, która rozwiązuje problem z dodaniem dwóch skrótów: http://wordpress.org/extend/plugins/url-shortcodes/ , ale nie udało mi się znaleźć czegoś podobnego dla niestandardowych linków .
Odpowiedzi:
Szukałem również rozwiązania tego problemu i znalazłem proste.
Oto, co musisz umieścić w polu adresu URL:
Działa dobrze!
Z pozdrowieniami Chris
źródło
Możesz użyć
nav_menu_link_attributes
filtra, aby sprawdzić i zmodyfikować atrybut href dla każdego elementu menu przed jego wydrukowaniem.W tym przykładzie szukamy wszelkich atrybutów href, które zaczynają się od
/
, i w tym przypadku poprzedzamy adres URL witryny testowej:Możesz utworzyć prostą wtyczkę z tym kodem i aktywować ją tylko na serwerze testowym lub utworzyć flagę, która warunkowo zastosuje ten filtr, gdy obecne jest środowisko strony testowej.
źródło
Użycie
<base href=" ">
tagu w meta head da podstawowy adres URL do wszystkich względnych kotwic na stronie.Odniesienie:
https://www.w3.org/TR/html4/struct/links.html
12.4 Informacje o ścieżce: element BASE
Względne niestandardowe linki w wordpress:
Jeśli chcesz, aby URL strony był podstawowym adresem URL wszystkich kotwic, dodaj to do theme / header.php w
<head>
:<base href="<?php echo site_url(); ?>/">
wiem, że może być dla ciebie spóźniony, ale może pomóc komuś innemu.
źródło
ehepperle.com/sites/in-progress/some-wp-site-root/
chyba że jawnie ustawisz katalog główny witryny. Szybkość tworzenia stron internetowych nie jest zauważalnie poprawiona za pomocąbase
znacznika, ponieważ podczas migracji do innej witryny konieczne będzie ponowne zdefiniowanie podstawy. Widzę jednak wartość zmniejszania długości wartości href.Na niestandardowym adresie URL w ustawieniach menu można użyć względnych linków do [blogurl]. Sekret polega na tym, aby względny adres URL rozpocząć od jednego
/
. Gdy pojedynczy / uruchamia niestandardowy adres URL, system nie będzie poprzedzał typowego adresu URL,http://
a bieżący blogURL zostanie wygenerowany w docelowym adresie URL w czasie wykonywania.PRZYKŁAD
Jeśli chcesz przejść do strony głównej, po prostu wpisz
/
niestandardowy adres URLJeśli chcesz przejść do strony indeksu w folderze,
bbforums
wpisz/bbforums
niestandardowy adres URL.Pozwala to przenieść witrynę do domeny testowej bez konieczności kodowania nowego blogURL we wszystkich niestandardowych linkach do menu.
Na przykład:
jeśli mój blog jest
http://example.com
i chcę go przetestować w subdomenie,http://test.example.com
witryna może być przenoszona między wersją testową i produkcyjną bez problemów z menu przy użyciu wspomnianej powyżej konwencji adresów URL. Z powodzeniem przetestowałem to podejście za pomocą wtyczki XCloner do przeniesienia witryny.źródło
Najpierw musisz zainstalować tę wtyczkę dla skrótów URL.
Dodaj ten kod do
functions.php
pliku w motywie:Następnie musisz wywołać
wp_nav_menu
funkcję z plików szablonów:Otóż to. Następnie przejdź do sekcji menu zaplecza.
Na przykład, jeśli chcę podać adres URL strony do niestandardowego linku, dodam go w następujący sposób:
Teraz możesz przejść do interfejsu i sprawdzić, czy shortcode działa.
źródło