更改单个帖子条目的永久链接

时间:2016-03-23 作者:Xavi Ivars

我定义了一个自定义帖子类型,projects, 我已经将这些帖子类型的永久链接设置为/projects/my-project/. 然而,对于其中一个项目,我需要给它一个特殊的URL,所以/projects/special-project/ 它出现在/special-project/.

这可能吗?

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

尝试将以下内容添加到functions.php:

function wpse221475_custom_rewrite_rules() {

  add_rewrite_rule(
    \'^(special-project)?\', 
    \'index.php?post_type=projects&name=$matches[1]\', 
    \'top\'
  );

}

add_action(\'init\', \'wpse221475_custom_rewrite_rules\');
请确保在添加此规则后刷新重写规则。

访问:

Dashboard -> Settings -> Permalinks

或者,如果您愿意,您可以使用flush_rewrite_rules() 以编程方式。

重定向请求http://example.com/projects/special-projecthttp://example.com/special-project 您可以在wp

function wpse221475_redirect_request($wp) {

    if ( ! empty($wp->request) && $wp->request === \'projects/special-project\' ) {

        wp_redirect(home_url(\'special-project\'), 301);
        exit;

    }

}

add_action(\'wp\', \'wpse221475_redirect_request\');
当然,您可以使用其他方式/方法来实现相同的效果,但以上内容就足够了。

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?