从add_menu_page重定向

fig*_*r20 5 wordpress wordpress-plugin

我已经使用add_menu_page添加了一个菜单,该菜单都可以正常工作,但是单击后我希望该菜单页面打开特定帖子ID的帖子编辑器。

作为概念的证明,我尝试将javascript重定向回显到do函数中,如下所示:

// Load up the menu page
 function register_availability_custom_menu_page() {
   add_menu_page('custom menu title', 'Availability', 'add_users', 'options',             'options_do_page');
}

function options_do_page() {
echo "<script type=\"text/javascript\">";
echo "window.location = '/whatever_page.php';";
echo "</script>";
}
Run Code Online (Sandbox Code Playgroud)

这种方法确实有效,但是我想知道这是否是最佳方法,是否有更好的方法重定向到我要访问的页面?

更新

我现在也尝试将此代码与wp_redirect结合使用...

add_action( 'admin_menu' , 'admin_menu_new_items' );

function admin_menu_new_items() {
    wp_redirect( home_url() );
    exit;
}
Run Code Online (Sandbox Code Playgroud)

这给我一个Headers已经发送的错误,有人可以建议我要去哪里错误吗?

bra*_*ilo 3

如果我理解正确,那么您不需要重定向。$menu_slug不要在函数中使用 a add_menu_page,而是放置目标页面的地址,例如:

$the_post_title = 'The Portfolio';

add_action( 'admin_menu', 'wpse_59050_add_menu' );

function wpse_59050_add_menu() 
{
    global $the_post_title;
    $our_page = get_page_by_title( $the_post_title );

    $settings_page = add_menu_page( 
        'Edit '.$our_page->post_title, 
        'Edit '.$our_page->post_title, 
        'add_users', 
        '/post.php?post='.$our_page->ID.'&action=edit', 
        '', 
        '', 
        2
    );
}
Run Code Online (Sandbox Code Playgroud)

该函数来自以下 WordPress 答案:按帖子名称突出显示菜单项。你需要一些 jQuery 来正确突出显示这个顶级菜单,请检查我和 TheDeadMedic 在该问题中的答案。

另一项也很有用:为新的管理仪表板菜单项添加突出显示