自定义分类Wordpress的永久链接

时间:2018-05-30 05:59:33

标签: php wordpress permalinks

目前,我有WordPress网站,其网页,博客和自定义帖子类型名为“案例研究”。

我的永久链接设置是一个自定义结构:/ blog /%postname%/所以我可以在所有博客帖子的URL中显示“博客”。

我的自定义帖子类型的网址结构为http://www.my-domain/case-studies/case-study-url-here/,可通过以下设置正常运行。

    "rewrite" => array('slug' => 'case-studies', 'with_front' => FALSE),

我有一个自定义分类法来明智地对我的案例研究进行分类,因此我创建了一个名为division的分类法,我希望它的URL为“http://www.my-domain/case-studies/division-here/但当前它显示为”http://www.my-domain/blog/case-studies/division-here“是不对的。

要从部门网址中删除word博客,我更改了相同的重写代码,如下所示。

    "rewrite" => array( 'slug' => 'case-studies', 'with_front' => false),

但问题是,通过这样做,我不能正确地去分区分类页面而是显示一些随机页面或从我的网站发布,但带有“博客”基础的旧URL工作正常并显示案例研究列表如果我将“with_front”设为true,就可以了;但那不是我想要的。

有任何帮助吗?如何从URL中删除博客并使其有效?

此致 Manoj Soni

1 个答案:

答案 0 :(得分:0)

在自定义帖子类型中,您需要添加重写slug,例如'rewrite' => array('slug' => '%division%', 'with_front' => false ),

然后您需要在函数文件中添加以下代码。

function d_reset_permlinks( $post_link, $post ){
    if ( is_object( $post ) && $post->post_type == 'case-studies' ){
    $terms = wp_get_object_terms( $post->ID, 'division' );
    if( $terms ){
        return str_replace( '%division%' , $terms[0]->slug , $post_link );
    }
   }
   return $post_link;
}
 add_filter( 'post_type_link', 'd_reset_permlinks', 1, 2 );

使用帖子名称重置permlink,然后检查。