Ist es möglich, benutzerdefinierte Post-Typen auf einer Seite mit dem gleichen Slug irgendwie zu verwenden?

Das ist uralt, aber ich habe immer noch keine Ahnung, wie ich das richtig machen soll. Ich möchte benutzerdefinierte Post-Typ-Posts auf einer Seite mit einem Slug verwenden, der mit dem benutzerdefinierten posts-type rewrite slug identisch ist.

Natürlich verursacht das einen Schneckenkonflikt, gibt es eine Möglichkeit, das zu vermeiden? Ich glaube, ich muss meine Regeln neu schreiben, aber ich kann nicht verstehen, wie man es richtig macht.

Ich möchte URL wie /PAGE_SLUG/CUSTOM_POST_TYPE_SLUG/ : /PAGE_SLUG/CUSTOM_POST_TYPE_SLUG/ und ich möchte auch, dass Paginierung funktioniert. Ich habe ein paar Tage damit verbracht, es zum Laufen zu bringen, ich habe Plugins benutzt, ich habe verschiedene Arten von Abfragen verwendet, nichts half. Es gab ein positives Ergebnis, aber ich denke, es war irgendwie falsch Rewrite-Regel gemacht, die geleert wurde, sobald ich Permalinks Seite eingegeben habe. Wenn Sie eine solche functionalität erstellt haben, sagen Sie mir bitte, wie Sie das gemacht haben?

Ich habe es mit Hilfe eines Plugins versucht und über meine eigenen WP_Queries. Zum Beispiel habe ich eine function, die Ausgabe von untergeordneten Seiten auf einer bestimmten Seite ausführt, die über WP_Query funktioniert, wenn (! Is_numeric ($ id)) false zurückgibt;

 $args = array( 'posts_per_page' => $ppp, 'orderby' => 'menu_order', 'order' => 'ASC', 'post_type' => 'page', 'post_parent' => $id, 'post_status' => 'publish', 'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1 ), 'suppress_filters' => false ); $pages = new WP_Query( $args ); if ( $pages->have_posts() ) : 

Dann mache ich andere Manipulationen und Ausgaben. Liste der Seiten ist bedienbar Ich kann eine bestimmte Seite eingeben und Seitenumbruch arbeitet Flossen.

Dann muss ich eine Seite erstellen, die die Ausgabe von CPT-Posts ausführt, und ich möchte auch page slug unzuverlässig sein. Zum Beispiel heute möchte ich “Nachrichten” sein, morgen nenne ich es “Blog” und übermorgen nenne ich es “Geschichte”. Ich möchte, dass das Ändern des Seiten-Slugs das CPT-Verhalten automatisch ändert. So können benutzerdefinierte Posts geöffnet und Ansichten auf dieser Seite ohne zusätzliche Manipulationen angezeigt werden. Ich habe zuerst mit der Basisausgabe begonnen und diese function gemacht

 $args = array( 'posts_per_page' => $ppp, 'orderby' => 'meta_value_num', 'meta_key' => 'date', 'order' => 'DESC', 'post_type' => 'pt-news', 'post_status' => 'publish', 'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1 ), 'suppress_filters' => false ); $pages = new WP_Query( $args ); $news = ''; foreach( $pages -> posts as $post ){ 

Wie Sie Hauptunterschied sehen, wenn Postart. Aber das Verhalten selbst dieser grundlegenden Sache unterscheidet sich sehr von den Seiten. Entweder kann CPT nicht geöffnet werden, oder die Paginierung ist unterbrochen. Was ich schon probiert habe:

  1. Making CPT neu schreiben Slug auf Seite Slug. Bevor Permalinks geleert werden, funktioniert die Paginierung, aber CPT kann nicht geöffnet werden. Nachdem die Permalinks gelöscht wurden, kann ich CPT öffnen, aber die Seitennummerierung ist kaputt, es leitet mich auf eine leere ‘Latests Posts’ Seite weiter. Um die Wahrheit zu sagen, ich weiß nicht was es ist.

  2. Ich habe versucht, Plugin-Posts in Seiten, die mit Posts gut funktionierte, ich meine, es gab kein Problem mit kategorisierten Posts, aber es ist nicht flexibel und schlammabhängigen Weg, also lehnte ich es ab.

  3. Ich habe verschiedene Abfragen und Manipulationen mit der Variablen page / paged probiert. Es hat nicht geholfen.

  4. Ich habe versucht, die Rewrite-Regeln und den CTP-Umschreibvorgang im laufenden Betrieb zu aktualisieren. Es hilft nicht oder falsch. Ich habe aus der functions.php von theme gearbeitet, so dass ich den CPT-Slug nicht permanent ändern kann und ich konnte WP nicht zwingen, Rewrite-Regeln zu akzeptieren, die ich vor dem Aufruf von flush_rewrite_rules(); . Selbst wenn ich es anrufe, sehe ich meine Rewrite-Regeln nicht im Debug-Panel. Ich wollte die Paginierungsregel hinzufügen, aber es funktioniert nicht.

Was ich jetzt habe: Eine Seite, die die korrekte Ausgabe von CPT mit einem Slug ähnlich dem Seiten-Slug ausführt. Sie können als Seiten zugänglich sein, aber die Seitennummerierung funktioniert nicht, sie sendet mir die letzten Posts. Wenn ich Umschreibe-Slug entferne, dann bekomme ich falsche URLs wie CPT_SLUG/CPTP_SLUG sie funktionieren und Paginierung funktioniert, aber es ist falsch. Irgendwelche Ideen, wie CPT auf der Dinamyc-Slug von Seite funktioniert? Oder zumindest auf einer Seite mit statischem Slug ähnlich wie CPT rewrite slug?

Upd .:

Milo bot an, dieses Problem über den WP Archivmechanismus zu lösen. Ich gebe Einzelheiten zum Post-Typ mit Archiveinstellungen an:

name: pt-news label: Новости singular_label: News description: public: true show_ui: true show_in_nav_menus: true show_in_rest: false rest_base: has_archive: true has_archive_string: news exclude_from_search: false capability_type: post hierarchical: false rewrite: true rewrite_slug: news rewrite_withfront: false query_var: true query_var_slug: menu_position: show_in_menu: true show_in_menu_string: menu_icon: custom_supports:

Das hilft nicht. Ich versuche, auf / News / URI eingeben und es gibt mir einfache Startseite ohne Weiterleitungen, wie Titelseite und / News / sind die gleichen URI.

Wenn wir finden, dass diese Art der Lösung nicht funktionieren kann, kann jemand ein Werkzeug vorschlagen, um Regeln von der Admin-Seite zu schreiben, die nicht versehentlich von WordPress gespült werden? Ich denke, wenn es so problematisch ist, dass es wie geplant funktioniert, könnte ich zumindest die Paginierungsregeln anwenden. Wenn ich meine CPT rewrite-URL auf news und page slug auf news setze, kann ich zwar CPT-Posts öffnen, aber die Paginierung funktioniert nicht, sie sendet mich an die Datei “loop.php”, die keine Ahnung von meiner WP_Query hat.

Solutions Collecting From Web of "Ist es möglich, benutzerdefinierte Post-Typen auf einer Seite mit dem gleichen Slug irgendwie zu verwenden?"