W ten sposób mogę rozwiązać problem za pomocą JavaScript/front end.
var path = document.location.pathname;
path = path.split("/")[1]; // Should return the primary directory
path = path.toLowerCase(); // This should catch your.tumblr.com/Search and your.tumblr.com/search
if(path === "" || path === "search")){
console.log('Index or Search page');
}else{
// Run your function here
}
Zasadniczo jeśli URL ścieżka jest pusta lub jest równa search
wtedy nie uruchomić funkcję, ale uruchomić funkcję w każdym innym przypadku.
Jednak, jak już wspomniałem, nie jest to w 100% niezawodne. Ponieważ ścieżka może być http://your.tumblr.com/#
, a funkcja się nie powiedzie, być może będziesz musiał zbudować bardziej wyraźną logikę (możesz powiedzieć, jeśli path !== " "
dla pustego łańcucha).
Nadal nie jestem pewien, dlaczego nie jest to dobry pomysł na każdej stronie. Chyba, że użytkownicy są zdecydowanie powiązani ze stronami w witrynie i nie są przekierowywani przez stronę indeksu. A jeśli twój kod JavaScript nie jest duży, to wszystkie mogą być buforowane ze strony indeksu (ale nadal dostępne ze wszystkich innych stron w przypadku hotlinków itp.).
EDIT
Zgodnie komentarzach poniżej, stworzyły podstawowy przykład na koncie testowym Tumblr.
Kod wygląda następująco:
var path = document.location.pathname;
path = path.split("/")[1];
path = path.toLowerCase();
if(path === "" || path === "about"){
$('body').css('background','#F09');
console.log('Index or about page');
}else{
$('body').css('background','#FC0');
console.log('Other page');
}
strona Tumblr używam jest tutaj: http://sg-test.tumblr.com/
(nie sądzę, istnieje strona wyszukiwania, funkcja wyszukiwania jest blok włożeniu lub aktywuj w swoim szablonie i jest dostępny na każdej stronie.)
Funkcja w zasadzie sprawdza stronę indeksu (pusty katalog główny) lub stronę o tym (zastąp to dla "wyszukiwania" lub innej strony, jeśli zajdzie taka potrzeba).
Logi konsoli będą wyświetlane na każdej stronie. A jeśli ścieżka pasuje do indeksu lub o, ustawiłem kolor nadwozia na różowy, inaczej każda inna strona będzie pomarańczowa.
http://sg-test.tumblr.com/about (różowe tło)
http://sg-test.tumblr.com/post/134796799695/post-title (pomarańczowe tło)
Według tej logiki powinny być łatwe do dostosowania funkcji do wykonania kodu, jeżeli spełnia wymagania zmiennej PATH, jak w moim pierwszym przykładzie .
Jak już wspomniałem, jest problem z http://sg-test.tumblr.com/#. To jest w rzeczywistości nadal strona indeksu, ale nasz test zwraca false dla pustego katalogu, mimo że Tumblr odwzorowuje go na stronie głównej.
Dlaczego nie wystarczy dodać javascript do każdej strony? Zostanie on zbuforowany następnie co najmniej – lharby
, ponieważ aplikacja JavaScript nie powinna być uruchamiana na głównej stronie foo.tumblr.com. Powinien wystrzelić na adres foo.tumblr.com/EveryPageButSearch –
. Zobacz: http://ejdraper.com/2009/12/13/advanced-tumblr-customization/ (nieco ponad pół drogi). Mylnie strona index_grupy Tumblr odnosi się do różnych typów stron indeksu. Możesz kierować reklamy na stronę wyszukiwania przy użyciu tagów tumblr, ale pominięcie kodu jest bardziej złożone. Znam sposób, aby rozwiązać ten problem za pomocą jquery (który moim zdaniem mógłby zostać przeniesiony do jilli vanilla), ale oczywiście jest bardziej hackowaty i nie tak mocny, jak ustawienie go w tagach tumblr). – lharby