dostosowywanie — niestandardowy typ postu domyślnie to index.php dla strony archiwum
Opracowałem niestandardowy motyw z niestandardowym typem postu o nazwie events
. Jednak z jakiegoś powodu WP odmawia użycia mojego szablonu strony archiwum z nazwą pliku archive-events.php
według hierarchii szablonów WP. WP nadal domyślnie index.php
jako szablon dla tego typu postów.
Wcześniej miałem skonfigurowaną stronę w WP, która była ustawiona na ślimak /events/
który jest teraz ślimakiem niestandardowego typu postu. Ta strona jest teraz usunięta i nie wiem, czy to jest problem, który powoduje, że WP odmawia użycia archive-events.php
dla mojej listy archiwum dla niestandardowego typu postu. Próbowałem zmodyfikować i ponownie zapisać moją strukturę bezpośredniego łącza, ale to nie zadziałało. Obecnie permastruct jest ustawiony na „Nazwa wpisu”, tj
Więcej szczegółów:
- Zarejestrowałem niestandardowy typ postu
events
(kod poniżej) - Ślimak typu postu to „wydarzenia”, a poszczególne posty są pomyślnie renderowane w
- Strona archiwum dla tego typu postów jest dostępna pod adresem
/events/
ale używaindex.php
mimo że utworzyłem szablon archiwum dla typu postu jakoarchive-events.php
- Aby potwierdzić, jakiego szablonu WP używa do renderowania strony archiwum dla niestandardowego typu postu, stworzyłem funkcję, która wyświetla
$GLOBALS['current_theme_template']
używany do renderowania strony. Potwierdza to, że WP używaindex.php
renderować stronę archiwum. - W moim
header.php
plik Powtarzam funkcjęget_post_type_archive_link('events')
aby potwierdzić, że WP uważa, że strona archiwum dla mojego niestandardowego typu postu powinna być - The
archive.php
Iindex.php
Szablony WP są obsługiwane zgodnie z oczekiwaniami, ale szablon dla niestandardowego typu postu jest pomijany przez WP bez względu na wszystko - W ramach testu zmieniłem nazwę mojego istniejącego niestandardowego typu postu na coś nowego, ponownie zmapowałem wszystkie moje zapytania do tego CPT i odpowiednio zaktualizowałem nazwy szablonów. Mimo to WP odmawia obsługi
cpt-archive.php
jako szablon dla niestandardowego typu postu i służy alboarchive.php
Lubindex.php
Zamiast.
Oto mój functions.php
kod do rejestracji typu postu:
function registerEvents()
{
$labels = array(
'name' => _x( 'Events', 'Post type general name', 'textdomain' ),
'singular_name' => _x( 'Event', 'Post type singular name', 'textdomain' ),
'menu_name' => _x( 'Events', 'Admin Menu text', 'textdomain' ),
'name_admin_bar' => _x( 'Events', 'Add New on Toolbar', 'textdomain' ),
<snip>
);
$args = array(
'labels' => $labels,
'public' => true,
'hierarchical' => false,
'publicly_queryable' => true,
'exclude_from_search' => false,
'show_ui' => true,
'show_in_menu' => true,
'show_in_rest' => false,
'menu_position' => 5,
'menu_icon' => 'dashicons-calendar-alt',
'capability_type' => 'post',
'has_archive' => true,
'query_var' => true,
'delete_with_user' => false,
'supports' => array(
'title',
'editor',
'excerpt',
'thumbnail',
'page-attributes'
),
'taxonomies' => array( 'kind' ), // Custom tax previously registered
'rewrite' => array( 'slug' => 'events', 'with_front' => false ),
);
register_post_type( 'events', $args );
}
add_action( 'init', 'registerEvents' );