Ich habe einen benutzerdefinierten Post-Typ namens "visningshus" und auch eine Seite mit diesem Slug. Das ist so, wie es sein sollte (muss).
Derzeit listet " http://my-site.com/visningshus " alle Posts dieses Typs auf. Ich möchte stattdessen die Seite mit diesem Permalink-Slug anzeigen.
Wie kann ich Wordpress so einstellen, dass nicht der Name des Beitragstyps Vorrang hat, sondern der Permalink und die Seite angezeigt wird?
custom-post-types
permalinks
redirect
Henrik Erlandsson
quelle
quelle
Ich bin nicht hoch genug, um den Beitrag von @ Carl zu kommentieren, aber er ist die richtige Antwort (zumindest auf diese Situation, in der der Seiten- und der benutzerdefinierte Beitragstyp beibehalten werden) und keine archive.php-Datei verwendet wird).
Aber seine Antwort würde Fehler mit der Paginierung geben. So vermeiden Sie Paginierungsfehler:
Dies überprüft die Paginierung, erfasst die Seitenzahl und zwingt sie dann auf der anderen Seite, die Seite mit dem passenden Slug zu verwenden, und fügt dann die Seitenvariable ein.
Dies zusätzlich zu
'has_archive' => false,
oben angegebenen Funktionen die gewünschte Funktionalität erreichen.Stellen Sie, wie bereits erwähnt, sicher, dass Sie die Umschreiberegeln leeren, indem Sie nach dieser Änderung Einstellungen> Permalinks aufrufen.
Hoffe das hilft jemandem, denn ich weiß das hat mich schon sehr lange ratlos gemacht.
quelle
Tjena Henrik!
Ich denke, alles, was Sie tun müssen, ist, eine Umschreiberegel zu den Wordpress-Umschreiberegeln hinzuzufügen, die bereits erstellt wurden. Fügen Sie diesen Code-Snippet zu Ihrer functions.php Ihres Themas hinzu oder fügen Sie ihn ...
quelle
flush_rewrite_rules();
Sie sollten die Umschreiberegeln nichtinit
jedes Mal ändern . Einmal neu laden, dann entfernen oder Permalinks manuell löschen, indem Sie zu den Permalink-Einstellungen im Admin-Dashboard gehen und auf "Save Changes"Ich habe es gelöst, ohne den Konflikt zu lösen. Erstellen Sie eine Seite mit Slug Visningshus und schreiben Sie, was Sie wollen. Beachten Sie die ID dieser Seite.
Erstellen und passen Sie die Vorlage archive-custom-post-type.php wie gewünscht an (höchstwahrscheinlich verwenden Sie nur eine Seitenvorlage), ersetzen Sie jedoch den Loop-Teil durch
Wenn Sie dann zu http://my-site.com/visningshus gehen, sehen Sie den von der Seite verwalteten Inhalt unter der richtigen URL.
Lass es mich wissen, es funktioniert.
quelle
Nicht stimmberechtigt, aber + für Carls Lösung sollte register_post_type haben
Einfach. Wenn Sie jedoch mit Paginierungsproblemen konfrontiert sind, schauen Sie sich an
quelle
Was es für mich behebt, ist das Setzen von archive als false, aber auch das Setzen von hierarchical auf false beim Einrichten meines benutzerdefinierten Beitragstyps!
quelle
Hier ist eine allgemeine Lösung, um die Paginierung für JEDEN benutzerdefinierten Posten-Typ-Slug vor dem Inhalt benutzerdefinierter Posten-Typen zu priorisieren.
Neben dem Hinzufügen dieses Snippets sollten Sie auch sicherstellen, dass Ihr benutzerdefinierter Beitragstyp über Folgendes verfügt
archive = false
und zu guter Letzt gehen Sie zur Seite Einstellungen für Permalinks Einstellungen> Permalinks (/wp/wp-admin/options-permalink.php) und speichern Sie die aktuellen Einstellungen, um die Linkstruktur auf der Seite zu aktualisieren.
quelle