[英]Redirect from within a wordpress plugin
從插件中進行重定向的正確方法是什么?
當我的插件中的代碼被執行時,WordPress已經將標題打印到瀏覽器,所以我看不出如何從插件內部進行302/301重定向。
出於顯而易見的原因,我不想進行Javascript重定向!
謝謝
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個參數。
如果調用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();
}
顯然更改名稱等,但這應該讓你在插件頁面的任何地方使用header()。 它確實有一些缺點,但默認情況下不會顯示錯誤等,因此使用風險由您自行承擔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.