Das macht mich absolut verrückt. Ich habe Tage damit verbracht, dies zu beheben, und ich kann nicht herausfinden, warum dies so schwierig ist, da dies sicherlich eine sehr häufige Permalink-Struktur ist!
Ich habe Hunderte von Antworten und Beiträgen durchgesehen und keine davon scheint das Problem zu lösen.
Ich möchte einfach diese Struktur:
mysite.com/custom-post-type/custom-taxonomy-term/post-name
So erreiche ich folgendes:
mysite.com/literature - all literature posts
mysite.com/literature/fiction - all literature posts with 'fiction' term
mysite.com/literature/fiction/mybook - the post
Jedes Mal, wenn ich etwas versuche, erhalte ich 404 Fehler oder die Pagnination funktioniert nicht.
Ich verstehe nicht, warum das so schwer ist!
Jede Hilfe sehr geschätzt!
Vielen Dank
================================================== ==== ================== ZUSÄTZLICHE INFORMATIONEN ==================
Derzeit registriere ich den Beitragstyp und die Taxonomie wie folgt:
register_post_type('literature',$args);
'rewrite' => array('slug' => 'literature/books','with_front' => false),
register_taxonomy('literature_category',array('literature'), array(
'rewrite' => array( 'slug' => 'literature','with_front' => false ),
Wenn ich beide als "Literatur" registriere, erhalte ich auf der Seite mysite.com/literature eine 404, aber dies zeigt meinen Permalink wie folgt an: mysite.com/literature/books/mybook
Befolgen Sie die Anweisungen zu dieser Frage - Benutzerdefinierte Beitragstypen, Taxonomien und Permalinks
Ich habe dies zu meinen Funktionen hinzugefügt:
function filter_post_type_link($link, $post) {
if ($post->post_type != 'literature')
return $link;
if ($cats = get_the_terms($post->ID, 'literature_category'))
$link = str_replace('%literature_category%', array_pop($cats)->slug, $link);
return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);
Und änderte meinen Beitragstyp in 'slug' => 'literature/%literature_category%'
Und änderte meine Taxonomie in'slug' => 'literature'
Dies funktioniert hervorragend, außer dass die mysite.com/literature
Paginierung nicht funktioniert, sodass bei der folgenden URL ein 404-Fehler angezeigt wird:
mysite.com/literature/page/2/
Antworten:
Befolgen Sie die Hinweise zu dieser Frage wie bereits zuvor, fügen Sie diese jedoch Ihrem Code hinzu:
Zuletzt gehen Sie zu Einstellungen> Permalinks und klicken Sie auf Speichern. Wenn es immer noch nicht funktioniert, speichern Sie Ihre Permalinks erneut. Manchmal habe ich das Gefühl, du musst sie zweimal retten, aber wer weiß. Wie auch immer, lassen Sie mich wissen, wie Sie ausmachen. Beachten Sie, dass die Standardantwort Nr. 1 für Informatik gilt: Es funktioniert für mich ... ;-)
Aus dem Land von TMI ...
Der Grund, warum die Seiten nicht standardmäßig funktionieren, ist, dass WordPress eine Umschreiberegel für Literatur /% literaturkategorie% /% Buch% /% Seite% einfügt, was absolut sinnvoll ist, wenn Sie darüber nachdenken. Ihre Standard-Permalinks haben also diese konkurrierenden Regeln in dieser Reihenfolge:
Alles, was wir hier wirklich tun, ist, die Reihenfolge dieser zu ändern, indem wir letztere deaktivieren (wir können sie beibehalten, aber dann hat jedes Umschreiben danach einen weiteren regulären Ausdruck, der beim Laden der Seite ausgeführt werden kann) und sie am Anfang des Arrays hinzufügen.
Unterhaltsame Tatsache: Wenn Sie jemals ein "Buch" mit dem Titel "Seite" haben und es mehrere Seiten hat, wird diese Reihenfolge in Konflikt geraten und die nachfolgenden Seiten funktionieren nicht!
quelle