Как добавить подменю к произвольному типу записей?
22 авг. 2012 г., 16:06:28
Просмотры: 58.2K
Голосов: 24
Я пытаюсь создать подменю под произвольным типом записей, который я назвал Portfolios.
Когда я меняю add_submenu_page()
на add_options_page()
, новая ссылка корректно отображается под меню Настройки, но не отображается под меню Portfolios.
Что я делаю не так?
Ниже мой фрагмент кода;
add_action( 'admin_menu', 'mt_add_pages' );
function mt_add_pages() {
add_submenu_page(
__( 'portfolios', 'menu-test' ),
__( 'Тестовые настройки', 'menu-test' ),
'manage_options',
'testsettings',
'mt_settings_page'
);
function mt_settings_page() {
echo "<h2>" . __( 'Тестовые настройки', 'menu-test' ) . "</h2>";
}
}
Комментарии
Все ответы на вопрос
4
1
add_options_page()
автоматически добавляет пункт меню в раздел "Настройки", тогда как add_submenu_page()
позволяет вам контролировать, где именно он будет отображаться.
Попробуйте что-то вроде этого:
add_submenu_page(
'edit.php?post_type=portfolios',
__( 'Настройки теста', 'menu-test' ),
__( 'Настройки теста', 'menu-test' ),
'manage_options',
'testsettings',
'mt_settings_page'
);

NightHawk
1.47K
15 дек. 2012 г. 06:22:45
0
Продолжая пример @Jai...
Мои настройки
$postType = 'foo';
$categoryType = 'bar';
Пользовательский тип записи
$args = array(
'labels' => array('name'=>$postType, ...),
'rewrite' => array('slug' => 'all-'.$postType),
'taxonomies' => array($categoryType)
);
register_post_type( 'foo', $args );
Пользовательская таксономия категорий
$args = array(
'labels' => array( 'name' => _x( $categoryType, 'taxonomy general name' )),
'rewrite' => array( 'slug' => $categoryType ),
);
register_taxonomy( $categoryType, array( $postType ), $args );
Добавление категорий как подпунктов меню
$wp_term = get_categories( 'taxonomy='.$categoryType.'&type='.$postType );
if ( $wp_term ) {
foreach ( $wp_term as $term ) {
// add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '' )
add_submenu_page( 'edit.php?post_type='.$postType, $term->name, $term->name, 'manage_options', 'edit.php?post_type='.$postType.'&'.$categoryType.'='.$term->slug, '');
}
}

Artistan
233
20 янв. 2018 г. 20:39:45
0
/**
* Добавляет подменю страницы в родительский тип записи.
*/
function books_register_ref_page() {
add_submenu_page(
'edit.php?post_type=book',
__( 'Справочник по шорткодам книг', 'textdomain' ),
__( 'Справочник по шорткодам', 'textdomain' ),
'manage_options',
'books-shortcode-ref',
'books_ref_page_callback'
);
}
/**
* Функция отображения для страницы подменю.
*/
function books_ref_page_callback() {
?>
<div class="wrap">
<h1><?php _e( 'Справочник по шорткодам книг', 'textdomain' ); ?></h1>
<p><?php _e( 'Полезная информация здесь', 'textdomain' ); ?></p>
</div>
<?php
}
Ссылка на источник , Автор: Christina Blust

Lincoln Lemos
151
21 окт. 2018 г. 07:38:08
Похожие вопросы
4
ответов