下WordPress的管理页面的页面菜单,我得到这个布局:手动突出WordPress管理菜单项
页
- 编辑(网址:编辑pages.php)
- 添加新的(url:page-new.php)
- 特殊页(网址:编辑pages.php特殊页面=真)
,你可以看到,我也添加了特殊页新的子菜单项,这是一个很值得链接使用自定义过滤器编辑页面。由于Wordpress使用文件名来识别和突出显示子菜单项,所以无论何时点击特殊页面,编辑子菜单项都会被选中。无论如何强迫Wordpress选择特殊页面菜单项呢?
干杯
下WordPress的管理页面的页面菜单,我得到这个布局:手动突出WordPress管理菜单项
页
,你可以看到,我也添加了特殊页新的子菜单项,这是一个很值得链接使用自定义过滤器编辑页面。由于Wordpress使用文件名来识别和突出显示子菜单项,所以无论何时点击特殊页面,编辑子菜单项都会被选中。无论如何强迫Wordpress选择特殊页面菜单项呢?
干杯
解决方法:使用$ submenu_file变量
$ submenu_file = “?编辑pages.php特殊页面=真正的”
为了进一步澄清肯武的回答,编辑全局变量$submenu_file
和$parent_file
。如果您需要更改顶级项突出显示,$parent_file
global $submenu_file;
$submenu_file = "edit-pages.php?special-pages=true";
:例如,要突出你的页面。例如,突出显示“书写”设置页面:
global $parent_file;
global $submenu_file;
$parent_file = 'options-general.php';
$submenu_file = 'options-writing.php';
你能告诉我理想地将这些代码放在哪里吗?我无法让他们工作。 – Musa 2014-05-05 07:20:08
我试图在'add_meta_boxes()'的callaback函数中实现这个功能,但是它并没有突出显示我的顶级管理菜单。 我可以补充说我没有任何子菜单,只有顶级管理菜单。 – 2014-08-18 14:20:47
得到它正常工作。我会写另一个答案,让其他人更容易找到答案。 – 2014-08-18 14:39:01
谢谢Ken Vu和Jonathan Brinley。使用你的答案,我终于得到了我的管理菜单突出显示正常工作。当我努力工作时,尽管我会在此发布整个结果,所以其他人可以更容易地找到它:
这个想法是调用parent_file
过滤器(无证,尽可能多的Wordpress部件不幸)。在我的情况下,我添加了一个自定义菜单,而不是创建自定义帖子类型时生成的默认菜单。
在我的自定义邮政编码中,我打电话给add_meta_boxes
操作。在这个钩子,我发出了我的电话给parent_file
过滤器:
add_filter('parent_file', array(&$this, 'highlight_admin_menu'));
_
然后,这是我的hightlight_admin_menu
功能看起来像:
function highlight_admin_menu($some_slug){
global $parent_file;
$parent_file = 'post.php?post=149&action=edit';
return $parent_file;
}
_
这让我菜单以正确突出显示。试着玩弄你自己的代码来知道在哪里发行add_filter('parent_file', ...)
的代码。查找仅在特定页面加载时执行的代码,但很快就可以修改$parent_file
变量。
我希望这有助于!
更好的解决方案:
add_filter('parent_file', 'my_plugin_select_submenu');
function my_plugin_select_submenu($file) {
global $plugin_page;
if ('__my-current-submenu-slug__' == $plugin_page) {
$plugin_page = '__my-submenu-slug-to-select__';
}
return $file;
}
在我的情况下,我链接到管理分类管理页面,该分类没有附加到任何文章类型。你的代码完美无瑕。谢谢。 – wesamly 2016-01-13 14:45:54
为了改变OSD菜单的子菜单项,适当的过滤器是submenu_file
。
add_filter('submenu_file', 'menuBold');
static function menuBold($submenu_file)
{
if (checkProperPage($_GET)) {
// The address of the link to be highlighted
return 'post-new?post_type=foobar&foo=bar';
}
// Don't change anything
return $submenu_file;
}
支票发生在上线194(WordPress的4.5.3)WP的~/wp-admin/menu-header.php
文件:
if (isset($submenu_file)) {
if ($submenu_file == $sub_item[2])
$class[] = 'current';
...
}
u能请张贴关于如何使用它的一个例子吗?我无法使它工作 – bluantinoo 2011-10-06 16:41:05