Ich weiß, dass dies nicht vorgeschlagen wird und dass es viele Diskussionen über dieses Argument gibt. Leider ist es mir nach einer Woche voller Versuche und Tests noch nicht gelungen, die Schnecke aus meinem benutzerdefinierten Typ zu entfernen. Hier ist die Situation:
Die URL-Struktur, die ich brauche
- post / blog / my-blog-post [ok!]
- Seiten / Eltern-Service / Service [ok!]
- Portfolio / Portfolio / meine erste Arbeit [ok!]
- statische / übergeordnete-statische-Seite / statische-Seite [<<< --- hier ist das Problem]
Meine Konfiguration
- Wordpress 3.5.2
- Benutzerdefinierter Typ 'statisch': hierarchisch; ohne 'Umschreiben' Regel.
- Benutzerdefinierter Typ 'Portfolio': nicht hierarchisch; 'rewrite' => array ('with_front' => false)
- Permalink-Struktur: / blog /% postname% /
- Als Titelseite habe ich die statische Seite 'Blog' eingestellt
Das Problem
- post blog / my-blog-post [ok!]
- Seiten / Websites / dynamische Websites [ok!]
- Portfolio / Portfolio / meine erste Arbeit [ok!]
- statisch / wer-ich-bin / Begriffe [<<< --- hier ist das Problem]
Was ich versucht habe
Nichts
Zu Beginn lautet die URL des 'statischen' Beitrags "Meine Testseite" erwartungsgemäß / blog / static / my-test-page
'rewrite' => array ('slug' => '', 'with_front' => false)
Ich habe die Vorderseite von der URL entfernt ... gut! Jetzt habe ich / static / my-test-page
'rewrite' => array ('slug' => false, 'with_front' => false)
Es entfernt die Schnecke nicht. Ich habe / static / my-test-page noch nicht.
'rewrite' => array ('slug' => '/', 'with_front' => false)
Es entfernt die Schnecke! Jetzt habe ich / meine-Test-Seite . Leider geben mir alle Seiten einen 404-Fehler zurück .
Plugin 'Slug from Custom Post Type' entfernen
Obwohl es nur funktioniert, wenn meine Permalink-Struktur /% postname% ist, habe ich versucht, dieses Plugin zu installieren und meine Permalink-Struktur zu ändern, um einen Test durchzuführen. Es funktioniert, respektiert aber leider nicht die hierarchische Natur meines 'statischen' Typs.
Das Tutorial von Joakin Lim
Es funktioniert nicht. Insbesondere nach dem Hinzufügen function book_rewrite_rule()
heißt es, dass mein benutzerdefinierter Typ jetzt sowohl über / my-test-page als auch über / static / my-test-page zugänglich ist , aber er funktioniert bei mir nicht. Ich kann nur von / static / my-test-page zugreifen . Ich habe auch versucht, das gesamte Tutorial anzuwenden und einige Änderungen und Tests durchzuführen, aber ohne Erfolg
Das Tutorial von vip.wordpress
Wenn ich in beiden Funktionen 'event' durch 'static' ändere, kann ich über blog / parent-page / my-test-page auf meine Seite zugreifen . Wenn ich 'rewrite' => ('with_front' => false) hinzufüge, bricht alles zusammen und ich kann nur über die statische / übergeordnete Seite / meine Testseite zugreifen
Andere Lösungen und Tests
Leider kann ich mit meinem tatsächlichen Ruf nicht mehr als zwei Links verknüpfen. Aber ich habe auch versucht, die Lösung in ryansechrest.com, shibashake.com und - natürlich - ALLE Fragen zu finden, die zuvor in diesem Portal gestellt wurden. Natürlich jedes Mal, wenn ich alle Permalink-Regeln gelöscht habe, die Einstellungsseite besucht, die Optionen gespeichert, sie zweimal geändert und sie erneut gespeichert habe global $wp_rewrite; $wp_rewrite->flush_rules();
. Ich habe viele Kombinationen mit dem 'rewrite'-Array und den verschiedenen oben genannten Lösungen versucht.
Hast du einen Vorschlag?
quelle
Antworten:
Um dies zu erreichen, deaktiviere ich immer den Slug, wenn ich den benutzerdefinierten Beitragstyp hinzufüge, und füge mit der
add_rewrite_rule
Funktion benutzerdefinierte Umschreibungen hinzu .Siehe auch diese Codex-Seite: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule
quelle