我的函数中有一个简单的解决方案。php用于重新排序管理菜单。这是:
// Admin menu - reorder
function custom_menu_order($menu_ord){
if (!$menu_ord) return true;
return array(
\'index.php\', // Dashboard
\'edit.php?post_type=page\', // Pages
\'edit.php?post_type=shop_order\', // WooCommerce
\'edit.php?post_type=product\', // Products
\'gf_edit_forms\', // Forms
\'upload.php\', // Media
\'separator1\', // First separator
\'separator2\', // Second separator
\'separator-last\', // Last separator
\'users.php\', // Users
\'themes.php\', // Appearance
\'options-general.php\', // Settings
\'plugins.php\', // Plugins
\'tools.php\', // Tools
\'itsec\', // Security
\'edit.php?post_type=acf-field-group\', // Custom Fields
\'edit.php?post_type=cptm\' // Post types
);
}
add_filter(\'custom_menu_order\', \'custom_menu_order\');
add_filter(\'menu_order\', \'custom_menu_order\');
这很好,但这一项不起作用:
\'edit.php?post_type=shop_order\', // WooCommerce
它只是出现在菜单的底部,我试图让它以正确的顺序出现的所有操作都失败了。我认为问题在于post\\u类型名称
shop_order. 我认为是下划线让它失败了。
有没有想过为什么会这样?请不要说使用插件是为了避免使用其他插件。非常感谢。
最合适的回答,由SO网友:Zane DeVault 整理而成
WooCommerce菜单项的实际slug是“WooCommerce”。
因此,如果更换:
\'edit.php?post_type=shop_order\', // WooCommerce
使用:
\'woocommerce\', // WooCommerce
上述代码将起作用。
我发现了一个方便的函数,可以在How to remove admin menu pages inserted by plugins?.
以下是我在重新排序菜单项时使用的函数(来自上面的链接):
function my_debug_admin_menu() {
echo \'<pre style="margin-left:200px;">\' . print_r( $GLOBALS[ \'menu\' ], TRUE) . \'</pre>\';
}
add_action( \'admin_init\', \'my_debug_admin_menu\' );