Ich habe derzeit eine ID einer Seite, deren Permalink ich als Vorderseite einer Permastruktur eines von mir eingerichteten CPT verwenden möchte.
Jetzt kann ich get_permalink () verwenden, aber das gibt die vollständige URL zurück:
http://www.example.com/imapage/subpage/subsubpage
aber alles was ich zurückgeben möchte ist imapage/subpage/subsubpage
Gibt es eine Funktion, die dies kann, oder muss ich etwas einrichten, das den nicht benötigten Teil der URL subtrahieren kann?
permalinks
Scott
quelle
quelle
Antworten:
Es ist nichts eingebaut, um das gewünschte Bit zurückzugeben, aber es sollte so einfach sein, wie die Funktion home_url () zu verwenden und die Ausgabe aus der vollständigen URL zu entfernen, z.
quelle
Es gibt jetzt tatsächlich eine Kernfunktion dafür.
wp_make_link_relative($url)
Beispiel
Dies wird ausgegeben
/wp_test/sample-page/
Beispiel mit Post ID
<?php echo wp_make_link_relative(get_permalink( $post->ID )); ?>
Beispiel für aktuellen Beitrag
<?php echo wp_make_link_relative(get_permalink()); ?>
Mehr dazu finden Sie in der Dokumentation .
quelle
wp_make_link_relative(get_permalink())
sein/wp_dir/category_slug
Sie werden dafür nicht in der Lage sein
get_permalink()
.Wenn Sie sich in den Code für diese Funktion
/wp-includes/link-template.php
vertiefen , werden Sie sehen, warum. Nachdem die Permalink-Struktur analysiert und vorbereitet wurde, führt der Code Folgendes aus:Dies erfolgt unmittelbar nach dem Erstellen der Linkstruktur und bevor etwas durch einen nützlichen Filter geleitet wird.
Leider müssen Sie den nicht benötigten Teil der URL selbst extrahieren. Ich würde empfehlen, die von
str_replace()
@sanchothefat vorgeschlagene Funktion zu verwenden.quelle
$path = parse_url(get_permalink(...), PHP_URL_PATH);
... gibt nur den URL-Pfad an . Dies bezieht sich nicht auf das Blog-Stammverzeichnis, sondern auf die Domain. Es ist die absolute URI.quelle