我正在开发前端内容管理屏幕,希望将所有编辑链接指向网站的正面。
如果要将所有编辑链接指向FE,应选择get_edit_post_link
过滤解决方案(参见Marko的答案)。这将涵盖核心或插件调用的所有情况get_edit_post_link()
.
但是,如果您想实现“适当的”前端内容管理,您应该超越这一点。我见过一些插件绕过API,对编辑帖子url计算进行硬编码。此外,用户总是有可能键入管理员url并登录到默认的edit post admin屏幕。
因此,我认为您应该将默认的后期编辑url重定向到前端:
add_action(
\'admin_init\',
function()
{
global $pagenow;
if($pagenow==\'post.php\'
&& isset($_GET[\'action\']) && $_GET[\'action\']==\'edit\'
&& isset($_GET[\'post\']))
{
$post_id=$_GET[\'post\'];
// calculate $fe_edit_screen using $post_id
wp_redirect($fe_edit_screen);
exit;
}
},
1
);
这样,每个人都将被重定向到您的前端,无论他们最终如何访问后期编辑屏幕。此外,您可以添加更多的检查,例如,如果您只想重定向具有(或不具有)特定功能的用户,或者只针对特定的帖子类型,或者其他任何类型的用户。