我正在使用以下代码将帖子重定向到WordPress中的自定义网址:
add_action ('template_redirect', 'custom_redirect');
function custom_redirect() {
global $post;
if( is_single() ){
$external_link = get_post_meta( $post->ID, 'external_link', true );
if($external_link) {
wp_redirect( $external_link );
exit;
}
}
}
但是当我将 target =" _blank" 添加到第5行时,我的网站会中断。我这样添加它:
$external_link = get_post_meta( $post->ID, 'external_link', true, target="_blank", );
但它现在正在运作。
我只想在新标签页中打开外部链接。
我做错了什么?
答案 0 :(得分:1)
您可以使用javascript window.open
代替wp_redirect
。
请尝试以下代码。
add_action ('template_redirect', 'custom_redirect');
function custom_redirect() {
global $post;
if( is_single() ){
$external_link = get_post_meta( $post->ID, 'external_link', true );
if($external_link) {
echo "<script> window.open(".$external_link.", '_blank') </script>";
exit;
}
}
}
答案 1 :(得分:1)
一些精确性......参考https://developer.wordpress.org/reference/functions/get_post_meta/,没有&#34;目标&#34;参数。这就是你收到错误的原因。 Wordpress codex可以为您提供很多答案,尤其是当您决定创建一些参数时。 wp_redirect没有目标参数。这就是为什么你不能使用wp_redirect的原因。 在这种情况下,javascript是你的朋友,正如Bhunesh Satpada所写的那样。