從插件中做重定向的正確方法是什麼?從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