使用URL中的参数编辑帖子

时间:2021-07-24 作者:Locke

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的限制?

1 个回复
SO网友:Andrew

代码重定向到的原因/wp-admin/edit.php 是因为/wp-admin/post.php 使用检查推荐人wp_get_referer() 装载前。

因此,您最好使用get_edit_post_link() 输出指向页面的链接。

如果你想继续沿着你开始的道路走下去,你需要满足推荐人的条件。

相关推荐

Image editor is not loading

出于某种奇怪的原因,嵌入图像编辑器未加载<我已经在wp配置中启用了调试。php我已经100%禁用了插件并设置了默认主题,Javascript控制台或Apache2错误日志中都没有错误,安装了php gd,安装了imagemagick,安装了php curl,我可以丢弃服务器中缺少的模块,因为我在同一服务器中安装了另一个WP,并且图像编辑器工作正常我没有主意了,不确定是什么导致了这个问题:(