我想重定向任何具有特定元的帖子,我尝试过以下代码:
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
。
有没有办法实现这个功能?
由于
答案 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' );