下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