Da ich an einem Premium-Theme arbeite, das ich nächste Woche bei ThemeForest einreichen werde, wollte ich Benutzern erlauben, ihre Portfolio-Seite (die auf einer Seitenvorlage basiert) aus einem Dropdown-Menü im Admin-Bereich auszuwählen, damit sie angezeigt wird oben in den Breadcrumbs der Single-Portfolio-Posts. Etwas, das für Benutzerfreundlichkeit und SEO großartig ist, aber ein bisschen schwierig zu tun ist.
Grundsätzlich muss ich alle WordPress-Seiten in einem Array speichern und es dem Benutzer dann ermöglichen, einfach eine aus einem Dropdown-Menü auszuwählen. Das Problem ist, dass, wenn ein Benutzer eine auswählt, die Ausgabe für diese Option der Seitentitel wird, nicht die URL, der Slug oder die ID. Bei einer kleinen Google-Suche bin ich auf eine nette kleine Funktion gestoßen und habe sie ein wenig modifiziert, sodass Sie den Permalink jeder Seite nur basierend auf dem Seitentitel erhalten können.
Holen Sie sich einen Permalink von der WordPress-Seitentitelfunktion
Kopieren Sie die folgende Funktion und fügen Sie sie in Ihre Datei functions.php ein:
// get permalink by title function get_page_permalink_from_name($page_name) { global $post; global $wpdb; $pageid_name = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title="" . $page_name . "" LIMIT 0, 1"); return get_permalink($pageid_name); }
Verwenden Sie nun die folgende Methode, um den Permalink für den gewünschten Seitennamen zurückzugeben:
<?php echo get_page_permalink_from_name('YOUR PAGE NAME'); ?>