webentwicklung-frage-antwort-db.com.de

Untergeordnete Seiten in hierarchischen benutzerdefinierten Beitragstypen 404s

Ich habe in letzter Zeit mit benutzerdefinierten Beitragstypen gearbeitet und hatte keine größeren Probleme. Dieses Mal versuche ich etwas Neues. Ich möchte ein CPT erstellen, das im Grunde wie Pages funktioniert und eine Seitenhierarchie aufweist.

Die reale Sache ist auf Schwedisch, also verwende ich "Bücher" als Beispiel dafür, wie es funktionieren soll.

Als erstes erstelle ich meinen neuen Beitragstyp:

define('BOOKS_HTTP_PATH', WP_PLUGIN_URL . '/' . str_replace(basename(__FILE__), "", plugin_basename(__FILE__)));
function add_custom_post_type_books() {
    register_post_type( 'lpm-books', array( 
        'labels' => array( 
            'name' => 'Books',
            'singular_name' => 'Book',
            'add_new' => 'New book',
            'add_new_item' => 'Add new book',
            'not_found' => 'No books found' ),
        'public' => true, 
        'show_ui' => true,
        'show_in_nav_menus' => true,
        'menu_icon' => BOOKS_HTTP_PATH . 'images/books-icon.png',
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => array( 'slug' => 'books'),
        'capability_type' => 'page',
        'supports' => array('title','editor','page-attributes'),
        'query_var' => '',
        '_builtin' => false,
        ) 
    );
}
add_action( 'init', 'add_custom_post_type_books' );

In meinem Fall habe ich einen bestimmten Namen für das CPT, lpm-books (könnte in diesem Beispiel seltsam klingen, aber wie ich bereits sagte, mache ich dies auf Schwedisch, aber ich möchte den Namen des Beitragstyps wenn möglich auf Englisch). Ich setze den Umschreibe-Slug auf Bücher für meine Permalinks und füge 'hierarchical' => true und 'supports' => 'page-attributes' hinzu, um das Attribut-Meta-Feld verfügbar zu machen.

In Admin-> Books würde die Ansicht ungefähr so ​​aussehen:

  • Buch 1
    • Kapitel 1
    • Kapitel 2
  • Buch 2
    • Kapitel 1
    • Kapitel 2
    • ...

Also füge ich eine reguläre Seite mit dem Namen Meine Bücher (slug: my-books) hinzu, um eine "Startseite" zu erhalten, die meine Büchersammlung beschreibt. Die URL lautet http://www.example.com/my-books/. Auf dieser Seite liste ich alle meine hinzugefügten Bücher und ihre Kapitel auf.

Funktioniert einwandfrei, wenn ich auf Buch 1 (oder Buch 2) klicke. Die URL lautet http://www.example.com/books/book-1/. Aber wenn ich ein Kapitel ansehen will (URL: http://www.example.com/books/book-1/chapter-1), bekomme ich 404'd.

Meine Permalink-Struktur lautet: /%category%/%postname%/

Ich kann wirklich nicht herausfinden, warum die benutzerdefinierten untergeordneten Seiten (Posts) 404 sind. Da meine reguläre Startseite "My Books" weder mit dem CPT-Namen noch mit der Neuschreibungs-Slug kollidiert, habe ich wohl keine Ahnung mehr.

Hinweis: Ich habe auch versucht, 'rewrite' => array( 'slug' => 'books') zu entfernen, erhalte aber weiterhin 404 für die "untergeordneten Beiträge".

Wie geht es euch bei der Erstellung hierarchischer CPTs? Kann ich diese Arbeit machen oder muss ich die Struktur überdenken?

Vielen Dank!

3
lepardman

Okay, nach ein paar Stunden entfernte ich den 'query_var' => '', und speicherte/löschte meine Permalink-Einstellungen. Query_var ist standardmäßig true und funktioniert. Codierung Blindheit oder etwas lol. Hoffe das kann jemand anderem helfen.

2
lepardman