Redirect not work

时间:2019-03-22 作者:Jaron

我有课程:

 class users{

        public function __construct(){

           add_action(\'do_redirect\', \'redirect\'); 

        }

        public function redirect(){
                $url = get_site_url(null, \'/welcome\', \'https\');  
                wp_redirect( $url );
                exit;
            }  

        public function some_function(){
        do_action(\'do_redirect\');

    }

}
I get错误:

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function \'redirect\' not found or invalid function name.
如果我只使用wp_redirect() 我得到的标题错误。

我必须如何改变这一点,因为我觉得我做错了什么?

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

当您在类中时,需要传递对WordPress的引用,以便WordPress调用类中的函数。请参见包含$this.

class My_Users {
    public function __construct() {
        add_action( \'do_redirect\', array( $this, \'redirect\' ) );
    }

    public function redirect() {
        $url = get_site_url( null, \'/welcome\', \'https\' );
        wp_safe_redirect( $url );
        exit;
    }


    public function some_function() {
        do_action( \'do_redirect\' );
    }
}
$custom_users = new My_Users();
$custom_users->some_function();
也就是说,这里不需要使用动作。只需执行以下操作就会更简单:

class My_Users {
    public function redirect() {
        $url = get_site_url( null, \'/welcome\', \'https\' );
        wp_safe_redirect( $url );
        exit;
    }
}
$custom_users = new My_Users();
$custom_users->redirect();

相关推荐

Custom URL redirect in WP

我正在尝试为外部链接创建自己的重定向页面。My target我的目标是,当用户打开链接时www.mysite.com/wp/GoTo/?URL=www.google.com, 浏览器打开页面www.google.comWhat I have done我保存了以下内容GoTo.php 文件夹中的文件wp-content/themes/theme-name/:<?php /* Template Name: GoTo */ /** *