如何使用unctions.php中的PHP代码将访问者重定向到自定义URL

时间:2013-06-05 作者:Arvind

用户必须被重定向到我已经知道的自定义URL(它是编程逻辑的一部分)。我只需要知道使用哪个WP函数/使用什么php代码将用户重定向到新URL。此代码将在函数中的php函数中执行。php-->该函数将首先进行一些处理,然后将用户发送到新的URL

我如何做上述工作?

注意--我尝试使用wp\\u重定向,但它不起作用。

这是我尝试使用的代码(不起作用)--

       $redirecturl = get_post_type_archive_link(\'property\');
       echo "\\n\\n Redirect URL for property posts=" + $redirecturl;
       wp_redirect( "http://" .  $redirecturl + "?post_type=property&search_keyword=" + $search_keyword ;

2 个回复
SO网友:Nicolai Grossherr

首先,很难相信wp_redirect 不起作用,下面是一些(示例)代码如何使用它:

function wpse101952_redirect() {
  global $post;

    if( /*SOME CONDITIONAL LOGIC*/ ) { //examples: is_home() or is_single() or is_user_logged_in() or isset($_SESSION[\'some_var\'])

        wp_redirect( /*SOME SPECIFIC URL*/ );

        exit();
    }
}
add_action( \'template_redirect\', \'wpse101952_redirect\' );
第二个问题是,这是否是适合您的案例的正确方法,但要确定这一点,您应该详细说明您正在尝试做些什么。

编辑:

功能get_post_type_archive_link() 提供完整的永久链接,无需添加http://?post_type=property:

   wp_redirect( $redirecturl . "?search_keyword=" . $search_keyword );

SO网友:Charles Clarkson

运行与您的代码类似的程序时,我在错误日志中收到以下警告:

Warning: Cannot modify header information - headers already sent by (output started at /xxx/wordpress/wp-content/themes/balance/functions.php:4) in /xxx/wordpress/wp-includes/pluggable.php on line 876
当我用它来测试时:

$redirecturl = \'google.com\';
wp_redirect( \'http://\' .  $redirecturl );
exit;
一切正常,因此您可以尝试:

$redirecturl = get_post_type_archive_link( \'property\' );
wp_redirect( \'http://\' .  $redirecturl . \'?post_type=property&search_keyword=\' . $search_keyword );
exit;
Theexit 建议在Function Reference.

结束