我正在将帖子重定向到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();
}
}
}
}
答案 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();
}