单词/博客/在鼻涕虫帖子中,CPT中的问题。解决方案?

时间:2017-10-26 作者:Taller de WordPress

我有个问题。

我需要在我的帖子中,url slug将是/blog/在single和categories中。

如果我更改仪表板中的永久链接,我会遇到自定义帖子类型404的问题。

现在我有了这个代码,但它在分类中不起作用。

我需要/博客/第一篇文章和/博客/姓名类别

非常感谢。

function create_new_url_querystring() {
    add_rewrite_rule(
        \'blog/([^/]*)$\',
        \'index.php?name=$matches[1]\',
        \'top\'
    );
    add_rewrite_tag(\'%blog%\',\'([^/]*)\');
}
add_action(\'init\', \'create_new_url_querystring\', 999 );

/**
Añadir la palabra blog antes de las urls sin que perjudique a los custom post type
 */
function append_query_string( $url, $post, $leavename ) {
    if ( $post->post_type == \'post\' ) {     
        $url = home_url( user_trailingslashit( "blog/$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\'], \'/blog/\') === false) {
           wp_redirect( home_url( user_trailingslashit( "blog/$post->post_name" ) ), 301 );
           exit();
        }
    }
}
add_filter( \'template_redirect\', \'redirect_old_urls\' ); 

1 个回复
SO网友:Md. Amanur Rahman

要解决此问题,只需在注册自定义帖子类型的位置将\\u front设置为false:

\'rewrite\' => array(\'slug\' => \'portfolio\', \'with_front\' => false),
使用此自定义post类型不会得到404错误

结束