Obecnie opracowuję wtyczkę wordpress, która wykorzystuje dwa niestandardowe typy postów. Co chcę tutaj wiedzieć: czy można dodać menu niestandardowego typu posta jako podmenu innego niestandardowego typu postu?
28
Obecnie opracowuję wtyczkę wordpress, która wykorzystuje dwa niestandardowe typy postów. Co chcę tutaj wiedzieć: czy można dodać menu niestandardowego typu posta jako podmenu innego niestandardowego typu postu?
Tak. Po zarejestrowaniu typu postu musisz ustawić show_in_menu
stronę, na której ma być wyświetlany.
Tutaj ustawiamy typ postu „filmy”, który ma być zawarty w podmenu pod postami.
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'show_in_menu' => 'edit.php'
)
);
Jeśli masz przypisaną taksonomię do niestandardowego typu postu, należy ją również dodać do strony.
W add_submenu_page()
pierwszym argumencie jest strona, do której ma zostać przypisany, a ostatnim jest ślimak menu.
add_action('admin_menu', 'my_admin_menu');
function my_admin_menu() {
add_submenu_page('edit.php', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre');
}
Aby dodać strony do innego niestandardowego typu postu, dołącz parametr ciągu zapytania typu postu wraz z nazwami stron.
Aby dodać Filmy CPT i jego taksonomię Gatunek w polu Post Entertainment, dostosuj kod w ten sposób.
edit.php
staje się edit.php?post_type=entertainment
edit-tags.php
staje się edit-tags.php?taxonomy=genre&post_type=entertainment
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'has_archive' => true,
'show_in_menu' => 'edit.php?post_type=entertainment'
)
);
add_action('admin_menu', 'my_admin_menu');
function my_admin_menu() {
add_submenu_page('edit.php?post_type=entertainment', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre&post_type=entertainment');
}
show_in_menu
atrybut, nie pracował dla mnie.Nasz niestandardowy typ postu:
Dodaj go dla istniejącego niestandardowego typu postu (na przykład „produkt”):
Lub dodaj do naszego niestandardowego menu wtyczek:
źródło