当我将
add_submenu_page()
更改为add_options_page()
时,它可以在“设置”菜单下正确显示一个新链接,但它没有显示在Portfolios菜单下。我在做什么错了?
下面是我的代码段;
add_action( 'admin_menu', 'mt_add_pages' );
function mt_add_pages() {
add_submenu_page(
__( 'portfolios', 'menu-test' ),
__( 'Test Settings', 'menu-test' ),
'manage_options',
'testsettings',
'mt_settings_page'
);
function mt_settings_page() {
echo "<h2>" . __( 'Test Settings', 'menu-test' ) . "</h2>";
}
}
#1 楼
add_options_page()
会自动将其添加到设置下,但是add_submenu_page()
可以让您控制它的显示位置。请尝试以下操作:
add_submenu_page(
'edit.php?post_type=portfolios',
__( 'Test Settings', 'menu-test' ),
__( 'Test Settings', 'menu-test' ),
'manage_options',
'testsettings',
'mt_settings_page'
);
评论
除非您缺少menu_title的第三个参数,否则您的代码将无法工作。参见法典
–拉希尔·瓦齐尔(Rahil Wazir)
13年2月2日,11:37
#2 楼
add_submenu_page('edit.php?post_type='.$this->plugin->posttype, __('Settings', $this->plugin->name), __('Settings', $this->plugin->name), 'manage_options', $this->plugin->name, array(&$this, 'adminPanel'));
管理面板中有一个回调函数名称。
评论
你能解释更多吗?
–bravokeyl
17年1月3日,下午6:05
#3 楼
要在@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, '');
}
}
#4 楼
/**
* Adds a submenu page under a custom post type parent.
*/
function books_register_ref_page() {
add_submenu_page(
'edit.php?post_type=book',
__( 'Books Shortcode Reference', 'textdomain' ),
__( 'Shortcode Reference', 'textdomain' ),
'manage_options',
'books-shortcode-ref',
'books_ref_page_callback'
);
}
/**
* Display callback for the submenu page.
*/
function books_ref_page_callback() {
?>
<div class="wrap">
<h1><?php _e( 'Books Shortcode Reference', 'textdomain' ); ?></h1>
<p><?php _e( 'Helpful stuff here', 'textdomain' ); ?></p>
</div>
<?php
}
链接到源,作者:Christina Blust
评论
我认为您传递的是错误的父级子弹,即投资组合。再次检查...投资组合取代您自定义帖子类型的标签。.