如何使用EMPLATE_REDIRECT传递消息

时间:2015-08-11 作者:Mayeenul Islam

我使用以下函数使用自定义字段将帖子重定向到另一个帖子。在我添加line#8 要传递ID以便我可以将其抓取到帖子中(重定向到的位置),并显示一条自定义消息,您将从该特定帖子重定向:

function project_do_redirect() {
    if( !is_singular( \'mycpt\' ) && !is_single() )
        return;

    global $post;
    $redirect_post_id = get_post_meta( $post->ID, \'redirect\', true );
    $redirect_url = $redirect_post_id ? get_permalink( $redirect_post_id ) : false;
    $redirect_url = esc_url( add_query_arg( \'redir_from\', $post->ID, $redirect_url ) );
    if( $redirect_post_id ) {
        wp_redirect( $redirect_url, 301 );
        exit;
    }
}
add_action( \'template_redirect\', \'project_do_redirect\' );
问题是:
如果我被从帖子12重定向到帖子13,那么?redir_from= 显示13 而不是12. 所以这件事并没有像预期的那样起作用。

因此,在不向URL传递任何参数的情况下,如何将消息传递到重定向页面?

1 个回复
SO网友:Kevin Fodness

您可以从另一个角度解决问题,并根据HTTP_REFERER, 在中提供$_SERVER 超全局:

http://php.net/manual/en/reserved.variables.server.php

您可以根据的URL执行页面查找$_SERVER[\'HTTP_REFERER\'] 通过这种方式获取帖子信息。您还可以通过不添加referer查询变量来保持301s的整洁,并将301s放入。htaccess或Apache配置为一行程序:

RedirectPermanent /old-path /new-path

结束

相关推荐

Wrong Redirection

我的网站登录页,即techisthenewcool.tk/wp-admin 正在重定向到网站主页。我不知道为什么会这样。我试着在谷歌上搜索,但没有找到结果。我使用Hostinger印度免费托管服务。任何建议。