不使用phpheader
功能它会在wordpress中引起问题。
Wordpress有自己的重定向功能
功能参考:wp_redirect($url, $status_code);
尝试以下操作:
<?php
$permalink = get_permalink( $id );
wp_redirect($permalink, 301);
exit;
?>
Updated:
我为你编了一些代码
将下面的代码放置到functions.php
文件:
function redirector($post_id) {
if (is_single()) {
$redirect_to = get_permalink($post_id);
if (empty($_SERVER[\'HTTPS\']))
$ht_prot = \'http://\';
else
$ht_prot = \'https://\';
$cur_link = $ht_prot . $_SERVER[\'SERVER_NAME\'] . $_SERVER[\'REQUEST_URI\'];
$pattern = \'/\'.$post_id.\'\\/+$/\';
preg_match($pattern, $cur_link, $matches);
if(sizeof($matches) < 1) :
wp_redirect($redirect_to, 301);
exit;
endif;
}
}
并将此函数调用到
single.php
文件:
redirector($post->ID);
get_header(); ?>
就在
get_header();
它只会重定向,如果你在单一岗位。
您可以根据需要进一步更改此代码。
Caution:
如果以后要更改永久链接结构,请删除函数调用,因为它将持续重定向并导致重定向错误。