从前端删除帖子时使用哪种方法

时间:2014-07-28 作者:Hasan Akhtar

我正在尝试在前端登记我的所有帖子以及删除和编辑链接(使用快捷码API)。我很难删除链接。对我来说,最明显的处理删除的方法是使用查询变量和$\\u GET进行删除。但是,如果用户继续重新加载页面,WordPress会在每次加载页面时尝试删除帖子。

想到的另一个解决方案是,将每个删除链接制作成一个按钮,并将其与包含post id和nonce等的隐藏字段一起嵌入到表单中。然而,这可能会导致数百个表单元素和单个页面上更多的隐藏字段,这看起来很混乱。

我能想到的最后一个解决方案是使用重定向。我可以使用查询变量,但可以拦截页面加载、删除帖子并将用户重定向到没有查询变量的页面。然而,我似乎找不到合适的钩子。我希望我的函数能够尽早运行,这样我就不会收到任何“headers ready sent”消息。

我想知道哪种方法是正确的?是否有一个钩子可以用于最后一个解决方案(类似于负载钩子,但用于前端)。

非常感谢。

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

还有两种可能的方法

使用浏览器的历史API操作地址栏/历史上显示的URL。

使用AJAX

重定向是百分之百支持浏览器的最佳解决方案,而且可能是最容易实现的。您不需要使用任何挂钩,只需在不生成输出的情况下进行处理,然后重定向回页面即可。类似于

if (isset($GET[\'posttodelete\'])) {
  delete post
  wp_redirect(utl with \'posttodelete\' stripped out of it);
} else 
  normal loop;
但是您的用户可能更喜欢AJAX解决方案,它需要更多的编码,但可以提供最佳的用户体验。

结束

相关推荐

Redirection on Custom page

我已经创建了登录页面模板,并通过wp admin->页面创建了登录页面。在这里,我选择“登录”模板如果有人没有登录,现在我需要重定向此页面上的用户。wp admin登录和此登录页是分开的。是否有人登录wp admin没有关系。我使用的代码如下所示,FireFox将我重定向到错误页面,并说“页面没有正确重定向”。if ( !is_admin() ) { if(!isset($_COOKIE[\'login_token\']) || $_COOKIE[\'login_token\']