WordPress固定链接重定向301

时间:2013-09-05 作者:Shabbir Lakdawala

<?php
$permalink = get_permalink( $id );  
header("Location: ".$permalink, true, 301);
?>
Iam将没有id的URL重定向到id为301的php代码给我带来了问题,这是正确的方法。

1 个回复
最合适的回答,由SO网友:Rahil Wazir 整理而成

不使用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:

如果以后要更改永久链接结构,请删除函数调用,因为它将持续重定向并导致重定向错误。

结束

相关推荐

wordpress permalinks tweeks

在创建任何帖子后,我都会遵循permalink结构。。。http://domain.com/wp/postname根据Permalink设置。。。。职位名称:http://domain.com/wp/sample-post/这个永久链接对于页面来说很好,但我如何才能像下面这样添加blog作为前缀。。。。http://domain.com/wp/blog/文章标题http://domain.com/wp/blog/类别/职位名称如果你需要更多信息,请告诉我,谢谢。