仅适用于POST的自定义固定链接,不适用于自定义POST类型

时间:2018-04-15 作者:DRMTV

嗨,喜欢标题上的状态,我如何才能做到这一点?我尝试了很多插件,它们都只适用于自定义帖子类型。

现在的情况是,我有一个自定义的帖子类型(食物),对于食谱,我使用wordpress帖子,

我想让这篇文章成为新老文章的/食谱/我最棒的标题。我知道我可以在permalink部分更改这一点,但如果我添加/recipes/%postname/,

我的自定义帖子也变成了/食谱/食物/我的真棒标题,这不是我想要的。

除了安装几个插件外,我还没有尝试任何代码,因为我可以在wp中编写代码,而依赖插件。

根据这个a link 我必须注册帖子类型,我完全不知道如何做到这一点,请帮助那些有能力的我,谢谢你之前的好意。

已编辑:我找到了此代码段

function filter_post_link($permalink, $post) {
    if ($post->post_type != \'post\')
        return $permalink;
    return \'recipes\'.$permalink;
}
add_filter(\'pre_post_link\', \'filter_post_link\', 10, 2);
我的帖子变成了/菜谱/我很棒的帖子,但我被重定向循环重定向了太多次。

知道为什么吗?我还更新了permalink

1 个回复
SO网友:DRMTV

好的,再次搜索后,我找到了这个,它成功了

/**
 * Add new rewrite rule
 */
function create_new_url_querystring() {
    add_rewrite_rule(
        \'recipes/([^/]*)$\',
        \'index.php?name=$matches[1]\',
        \'top\'
    );
    add_rewrite_tag(\'%recipes%\',\'([^/]*)\');
}
add_action(\'init\', \'create_new_url_querystring\', 999 );
/**
 * Modify post link
 * This will print /recipes/post-name instead of /post-name
 */
function append_query_string( $url, $post, $leavename ) {
    if ( $post->post_type == \'post\' ) {     
        $url = home_url( user_trailingslashit( "recipes/$post->post_name" ) );
    }
    return $url;
}
add_filter( \'post_link\', \'append_query_string\', 10, 3 );
/**
 * Redirect all posts to new url
 * If you get error \'Too many redirects\' or \'Redirect loop\', then delete everything below
 */
function redirect_old_urls() {
    if ( is_singular(\'post\') ) {
        global $post;
        if ( strpos( $_SERVER[\'REQUEST_URI\'], \'/recipes/\') === false) {
           wp_redirect( home_url( user_trailingslashit( "recipes/$post->post_name" ) ), 301 );
           exit();
        }
    }
}
add_filter( \'template_redirect\', \'redirect_old_urls\' );
可以找到完整帖子的链接a link 在这里

结束

相关推荐

WordPress Plugins won't save

我有一个WordPress网站,我刚刚接管了一个客户,因此我没有能力与以前的网站管理员/开发人员交谈。该网站使用的是YOOtheme对Subway稍加修改的版本。为了更新插件位置,Subway的一部分有“小部件选项”。我无法更改外观或小部件显示的页面,因为我无法保存任何内容。它看起来像已保存,但没有保存,或者您会在保存按钮旁边看到“加载循环”,它一直在运行。Things to note:<WordPress和插件是最新的。在我们转移到新服务器之前,插件是可更新的。新服务器有一个max\\u inpu