UPDATE
看来
get_edit_post_link()
正在尝试使用获取编辑url
?editor
, 这不存在,但如果我们手动设置url,它将起作用:
<?php
add_action(\'init\', \'edit_post_please\');
function edit_post_please()
{
if (is_user_logged_in() && current_user_can(\'edit_posts\')) {
$protocol = ((!empty($_SERVER[\'HTTPS\']) && $_SERVER[\'HTTPS\'] != \'off\') || $_SERVER[\'SERVER_PORT\'] == 443) ? "https://" : "http://";
$url = $protocol . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'];
$id = url_to_postid($url);
$parts = explode("/", $url);
$editor = end($parts);
$editor_link = \'/wp-admin/post.php?post=\' . $id . \'&action=edit\';
if ($editor == \'?editor\') {
wp_redirect($editor_link);
exit;
}
}
}
如果有人对这个想法有任何建议,请随意。
我想让编辑们能够快速访问当前的post编辑器。
我知道我们可以通过显示一个链接和一些条件来管理它,以显示给一些用户和登录用户,但有这样的东西会很酷。
我首先想到的是:
add_action(\'init\', \'edit_post_please\');
function edit_post_please()
{
if (is_user_logged_in() && current_user_can( \'edit_posts\' )) {
$protocol = ((!empty($_SERVER[\'HTTPS\']) && $_SERVER[\'HTTPS\'] != \'off\') || $_SERVER[\'SERVER_PORT\'] == 443) ? "https://" : "http://";
$url = $protocol . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'];
$id = url_to_postid($url);
$parts = explode("/", $url);
$editor = end($parts);
$editor_link = get_edit_post_link($id);
if ($editor == \'?editor\') {
wp_redirect($editor_link);
exit;
}
}
}
我没有考虑过安全问题或其他任何问题,这段代码似乎根本不起作用,我的意思是它可以很好地重定向到仪表板,但不会重定向到我想编辑的帖子。
$editor_link
有正确的编辑url,但似乎这可能是WP的限制?