更改Divi主题中项目的URL

时间:2015-12-20 作者:Tasos

我将Divi主题用于Wordpress网站。目前,Project Custom Post中的所有内容都具有以下格式的相同url:

www.mywebsite.com/projects/project-name

我想做的是改变projects 基于项目所属类别的更具动态性的名称。我知道我可以再创建一些自定义帖子,但我更喜欢这样。

我试图将永久链接设置更改为/%category%/ 但是,我的项目无法与这两个版本中的任何一个一起工作。

我也尝试过这种方式,但它只是更改为一个新的静态名称,没有类别动态url:

<?php
function custom_post_name () {
return array(
\'feeds\' => true,
\'slug\' => \'anewname\',
\'with_front\' => false,
);
}
add_filter( \'et_project_posttype_rewrite_args\', \'custom_post_name\' );
?>
有什么建议可以做到这一点,或者我应该转向不同的自定义帖子?

Example:

我有两个项目(divi主题的自定义帖子类型),类别如下:foodsdrinks. 目前,他们的url如下

www.mydomain。com/projects/foodexample1 www.mydomain。com/projects/drinkexample2我想把它们做成:

www.mydomain。com/foods/foodexample1 www.mydomain。com/饮料/饮料示例2

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

对于分类法(如类别或任何其他自定义分类法,使用register\\u taxonomy函数注册为自定义帖子类型),要成为wordpress中的单帖子永久链接的一部分,您可以在functions.php 当前主题:

function my_post_type_link( $post_link, $post ){
    if( !empty( $post->post_type ) && in_array( $post->post_type, array( \'projects\' ) ) ){
        $slug = $post->post_name;
        $post_id = $post->ID;
        $post_cats = get_the_terms( $post_id, \'category\' );     
        if( !empty( $post_cats[0] ) ){
            $target_category = $post_cats[0];
            while( !empty( $target_category->slug ) ){
                $slug = $target_category->slug . \'/\' . $slug;
                if( !empty( $target_category->parent ) ){
                    $target_category = get_term( $target_category->parent, \'category\' );
                }else{
                    break;
                }
            }
            $post_link = get_option( \'home\' ) . \'/\'. urldecode( $slug );
        }
    }
    return  $post_link;
}
add_filter( \'post_type_link\', \'my_post_type_link\', 10, 2 );

function my_pre_get_posts( $q ){     
    if( $q->is_main_query() && !is_admin() && $q->is_single ){
        $q->set( \'post_type\',  array_merge( array( \'post\' ), array( \'projects\' ) )   );
    }
    return $q;
}
add_action( \'pre_get_posts\', \'my_pre_get_posts\', 10 );
使用此选项,您可能会获得所需的输出projects posts的永久链接。

相关推荐

Altered Media Library URLs

我有一个客户的网站,是在他们离开另一家代理机构后我找到的。该机构使用了一个专有主题和自己的自托管页面生成器,以防止其在除他们之外的任何其他托管环境中更新或编辑。它的另一个方面是重新映射主题的URL并上载目录。因此,例如,代替WP在中查找主题文件http://domain.com/wp-content/themes/…. 它在里面找他们http://domain.com/t/….同样,对于图像上载,也可以在http://domain.com/wp-content/uploads/…, 它在里面找他们http