重定向自定义网址上的特定帖子

时间:2016-09-27 10:55:52

标签: wordpress redirect post init

我想重定向任何具有特定元的帖子,我尝试过以下代码:

function my_call_back() {
    if( is_single() ) {
        global $post;
        $meta = get_post_meta( $post->ID, 'my_meta', true );
        if( $meta == 'my_value' ) {
            wp_redirect( 'http://google.com' );
            exit;
        }
    }
}
add_action( 'init', 'my_call_back' );

$post变量返回空值,因此我无法在global $post挂钩中使用init

有没有办法实现这个功能?

由于

1 个答案:

答案 0 :(得分:2)

我认为问题是你挂钩init这有点太早了。尝试将您的功能挂钩到template_redirect,如下所示:

function my_call_back() {
    if( is_single() ) {
        global $post;
        $meta = get_post_meta( $post->ID, 'my_meta', true );
        if( $meta == 'my_value' ) {
            wp_redirect( 'http://google.com' );
            exit;
        }
    }
}
add_action( 'template_redirect', 'my_call_back' );