-2

我尝试在 Wordpress3.6.1 的测试插件中使用 wp_redirect,这是一个简单的插件,但它不起作用。这是我的代码:

<?php
/*
Plugin Name: Test
Plugin URI: http://localhost
Description: This is just test plugin
Author: author
Version: 1.0
Author URI: http://localhost
*/
function test_menu(){
    $page_title = 'Test';
    $menu_title = 'Test';
    $capability = 'manage_options';
    $menu_slug = 'test-menu';
    $function = 'my_test';
    add_menu_page($page_title, $menu_title, $capability,$menu_slug, $function);
}

add_action('admin_menu', 'test_menu');

function my_test(){
    wp_redirect("http://www.google.com.vn");
    exit;
}

单击测试菜单时,我收到警告:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\wp3.6.1\wp-admin\includes\template.php:1706) in C:\AppServ\www\wp3.6.1\wp-includes\pluggable.php on line 875

请帮助我,这段代码发生了什么

4

2 回答 2

3

尝试缓冲ob_start()

add_action('init', 'do_output_buffer');
function do_output_buffer() {
        ob_start();
}
于 2013-10-15T11:18:07.420 回答
0

它完全在我的工作。可能存在变量值冲突。

我用过这个。尝试这个。

<?php
/*
Plugin Name: Test
Plugin URI: http://localhost
Description: This is just test plugin
Author: author
Version: 1.0
Author URI: http://localhost
*/
function test_menu(){
    $page_title = 'Test';
    $menu_title = 'Test';
    $capability = 'manage_options';
    $menu_slug = 'test-menu';
    $function = 'my_test';
    add_menu_page($page_title, $menu_title, $capability,$menu_slug, $function);
}

add_action('admin_menu', 'test_menu');

function my_test(){
    wp_redirect("http://www.google.com.vn");
    exit;
}
?>

谢谢

于 2013-10-15T10:19:21.913 回答