在管理菜单中添加指向帖子编辑器的直接链接

时间:2015-08-24 作者:Entalpia

我正在尝试在导航中创建一个快捷方式,将用户带到某个帖子。到目前为止,我正在使用

add_action(\'admin_menu\', \'add_custom_menu_position\');

function add_custom_menu_position() {
add_menu_page(\'FeaturedJobs\', \'Featured Jobs\', \'edit_posts\', \'edit.php?post=706&action=edit\',18); 
}
该项确实显示在“管理”菜单中,但每次我尝试使用它时,它都会插入“管理”?作为链接的一部分,您没有足够的权限访问此页面错误。

最后一个链接如下所示:http://website_url/wp-admin/admin.php?page=post.php?post=706&action=edit

我知道我有足够的能力来编辑它,因为我有一个管理员帐户,而且一旦我使用了一个常规的编辑链接(http://website_url/wp-admin/post.php?post=706&action=edit), 它工作得很好。我很肯定问题是存在的,因为我试图找到的链接是错误的,但我找不到任何其他方式来链接它。

如有任何提示,我将不胜感激。

2 个回复
SO网友:Domain

当您将菜单段塞添加为edit.php?post=706&action=edit, 它是在url中添加的admin.php 将其视为管理仪表板中的新页面(的一般行为add_menu_page())

因此,您应该提供一个完全限定的url。我想,admin_url() 应该有帮助。

尝试添加

admin_url(\'post.php?post=706&action=edit\')

admin_url(\'edit.php?post=706&action=edit\')

而不是

edit.php?post=706&action=edit

作为菜单段塞。

SO网友:Unbywyd
add_action( \'admin_menu\', \'register_custom_menu_link\' );

function register_custom_menu_link(){
    add_menu_page(\'FeaturedJobs\', \'Featured Jobs\', \'edit_posts\', \'featured_jobs\', \'__return_null\', \'dashicons-external\', 18);
}

add_action( \'admin_init\', \'redirect\' );
function redirect() {
    if(!empty($_GET[\'page\']) && $_GET[\'page\'] == \'featured_jobs\') {
        // Your post id
        $post_id = 706;
        wp_redirect(wp_specialchars_decode(get_edit_post_link($post_id)));
    }
}
结束