如何将其重定向到新标签页?

时间:2019-02-08 10:27:24

标签: php

我正在将帖子重定向到url,目前可以很好地完成工作,但是我无法解决如何在新标签页中打开url的问题。

defined( 'ABSPATH' ) or exit;

function bhrdr2p_redirect_post_to_url() {
    if( !is_singular() ) return;

    global $post;
    $redirect = esc_url( get_post_meta( $post->ID, 'redirect', true ) );
    if( $redirect ) {
        wp_redirect( $redirect, 301 );
        exit;
    }
}
add_action( 'template_redirect', 'bhrdr2p_redirect_post_to_url' );


//redirect any drafted posts
add_action('template_redirect', 'bhrdr2p_rtrash_redirect');
function bhrdr2p_rtrash_redirect(){
    if ( !current_user_can( 'edit_pages' ) ) {
        if (is_404()){
            global $wp_query, $wpdb;
            $page_id = $wpdb->get_var( $wp_query->request );
            $post_status = get_post_status( $page_id );
          $redirect = esc_url( get_post_meta( $page_id, 'redirect', true ) );

            if($post_status == 'draft' && $redirect){
                wp_redirect( $redirect , 301);
                die();
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

由于PHP是服务器端的,所以不能。

header()功能和Wordpress'wp_redirect()均不提供此类功能。


您可以尝试使用JavaScript,它可能会起作用:

更改Wordpress重定向:

wp_redirect( $redirect , 301);

到一个小的JavaScript脚本。

echo "<script> window.open(".$redirect.", '_blank') </script>";

答案 1 :(得分:-1)

您必须使用此处的javascript在新标签页中重定向

if($post_status == 'draft' && $redirect){            
 <script>
     window.open( '<?php echo $redirect; ?>', '_blank' );
 </script>
 die();
}