Как настроить url — custom post type?

Здравствуйте!

Помогите пожалуйста решить следующий вопрос:

1. У меня есть кастомный тип записи 'treatment' + кастомная таксономия 'treatments'
function create_post_type() {
    register_post_type('treatment',
        array(
            'labels' => array(
                'name' => 'Лечение',
                'singular_name' => 'Лечение', // админ панель Добавить->Функцию
                'add_new' => 'Добавить статью',
                'add_new_item' => 'Добавить новую статью', // заголовок тега <title>
                'edit_item' => 'Редактировать статью',
                'new_item' => 'Новая статья',
                'all_items' => 'Все статьи',
                'search_items' => 'Искать статью',
                'not_found' =>  'Статей не найдено.',
                'not_found_in_trash' => 'В корзине нет статей.',
                'menu_name' => 'Лечение',
                ),
                'public' => true,
                'publicly_queryable' => true,
                'show_ui' => true,
                'menu_icon' => 'dashicons-welcome-widgets-menus',
                'query_var' => true,
                'capability_type' => 'post',
                // 'rewrite' => array('slug' => 'treatments/%treatment%'),
                'hierarchical' => true,
                'menu_position' => null,
                'taxonomies' => array('treatments','post_tag'),
                'supports' => array('title','editor','author', 'custom-fields','thumbnail','excerpt','comments'),
            )
        );
         register_taxonomy( 'treatments', 'treatment', array( 'hierarchical' => true, 'label' => 'Рубрики', 'query_var' => true, 'rewrite' => true ) );
 
    }



function wpa_treatment_post_link( $post_link, $id = 0 ){
    $post = get_post($id);  
    if ( is_object( $post ) ){
        $terms = wp_get_object_terms( $post->ID, 'treatments' );
        if( $terms ){
            return str_replace( '%treatment%' , $terms[0]->slug , $post_link );
        }
    }
    return $post_link;  
}
add_filter( 'post_type_link', 'wpa_treatment_post_link', 1, 3 );


И вот какая задача:

Если у записи не задана категория, то её url должен быть:
site.com/treatment/post-title

А если рубрика (таксономия задана), то линк должен быть таким:
site.com/category-name/sub-category-name/post-title


Можно такое провернуть?
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы