从插件中做重定向的正确方法是什么?从wordpress插件中重定向
当我的插件中的代码被执行时,WordPress已经向浏览器打印了标题,所以我没有看到从插件内部执行302/301重定向的可能性。
我不想做一个Javascript重定向的原因很明显!
感谢
从插件中做重定向的正确方法是什么?从wordpress插件中重定向
当我的插件中的代码被执行时,WordPress已经向浏览器打印了标题,所以我没有看到从插件内部执行302/301重定向的可能性。
我不想做一个Javascript重定向的原因很明显!
感谢
如果wp_redirect被调用得太晚,您可能无法使用它(不确定您调用它的位置)。假设这是一个管理插件页面中的重定向,另一种方法是将输出捕获到缓冲区中,这意味着您仍然可以发送标题。我用一个例子是:
# In your 'admin_menu' callback:
$page_hook = add_options_page('My Plugin', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options');
add_action('load-' . $page_hook , 'my_ob_start');
# Somewhere else in your plugin
function my_ob_start() {
ob_start();
}
显然改变名称等,但应该让那么你用头()在你的插件页面的任何地方。它确实有一些缺点,但是默认情况下不会显示错误等,所以请自担风险。
add_filter('wp_redirect', 'plugin_redirect' , 10, 2);
function plugin_redirect($location, $status) {
// Your redirect function code here
return $location;
}
在功能的add_filter
wp_redirect过滤函数接受2个参数。
请给我一个用例。 add_filter调用在哪里,在我的插件代码或外部? – MrCode