So würde ich es mit JavaScript/Front-End lösen.
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
}
Grundsätzlich, wenn der Pfad URL leer ist oder gleich search
dann nicht die Funktion ausführen, aber die Funktion in jedem anderen Fall auszuführen.
Wie ich bereits erwähnte, ist dies jedoch nicht 100% ig robust. Da der Pfad möglicherweise http://your.tumblr.com/#
ist und die Funktion fehlschlägt, müssen Sie möglicherweise explizitere Logik erstellen (Sie können sagen, path !== " "
für eine leere Zeichenfolge).
Ich bin mir immer noch nicht sicher, warum es keine gute Idee ist, dies auf jeder Seite zu haben. Es sei denn, Benutzer werden definitiv mit Seiten auf der Website verknüpft, die nicht über die Indexseite weitergeleitet werden. Und wenn Ihr JavaScript-Code nicht massiv ist, könnte er alle von der Indexseite aus zwischengespeichert werden (aber im Falle von Hotlinks usw. immer noch von allen anderen Seiten verfügbar sein).
EDIT
Wie pro Kommentar unten, ich habe ein grundlegendes Beispiel auf einem Test Tumblr-Konto erstellt.
Der Code sieht wie folgt aus:
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');
}
Die Tumblr Seite ich verwende hier: http://sg-test.tumblr.com/
(Ich glaube nicht, dass es eine Suchseite ist, ist die Suchfunktion ein Block, den Sie einfügen oder aktivieren Sie es in Ihrer Vorlage und ist auf jeder Seite verfügbar.)
Die Funktion sucht grundsätzlich nach der Indexseite (leeres primäres Verzeichnis) oder der About-Seite (ersetzen Sie diese bei Bedarf durch 'Suchen' oder eine andere Seite).
Konsolenprotokolle werden auf jeder Seite ausgegeben. Und wenn der Pfad mit dem Index übereinstimmt, habe ich die Farbe für den Körper auf pink gesetzt, sonst ist jede andere Seite orange.
http://sg-test.tumblr.com/about (rosa Hintergrund)
http://sg-test.tumblr.com/post/134796799695/post-title (orange Hintergrund)
Nach dieser Logik sollte es einfach sein, die Funktion anzupassen Ihren Code auszuführen, wenn es die Pfadvariablen Anforderungen, wie in meinem ersten Beispiel trifft .
Wie ich bereits erwähnte, gibt es ein Problem mit . Dies ist effektiv immer noch die Indexseite, aber unser Test gibt für ein leeres Verzeichnis false zurück, obwohl Tumblr es auf die Homepage abbildet.
Warum nicht einfach das Javascript zu jeder Seite hinzufügen? Es wird dann mindestens – lharby
zwischengespeichert werden, weil die Javascript App nicht auf der Hauptseite von foo.tumblr.com feuern sollte. Es sollte auf foo.tumblr.com/EveryPageButSearch feuern –
Werfen Sie einen Blick auf diese: http://ejdraper.com/2009/12/13/advanced-tumblr-customization/ (knapp über die Hälfte nach unten). Verwirrenderweise bezieht sich der Tumblr-Block indexPage auf verschiedene Arten von Indexseiten. Sie können die Suchseite mithilfe der tumblr-Tags ausrichten, das Auslassen von Code ist jedoch komplexer. Ich kenne einen Weg, dies zu lösen, indem ich jquery verwende (von dem ich denke, dass es auf vanilla js portiert werden könnte), aber natürlich ist es hackiger und nicht so robust wie es in den tumblr-Tags eingestellt ist). – lharby