Структура постоянных ссылок для нескольких типов архивов по таксономии

8

Недавно я работал над продвинутым проектом WordPress, и я застрял с изменением структуры постоянных ссылок для пользовательских типов записей.

Я создал 3 типа постов, скажем: type1, type2, type3 и тест таксономии, зарегистрированный для всех из них. У меня есть 3 условия в пользовательской таксономии cat1, cat2, cat3

Вот чего я хочу достичь:

вместо доступа ко всем сообщениям от

SITEURL / тест / cat1

Я хочу получить доступ к каждому архиву пост-типа по таксономическим кошкам, например:

SITEURL / type1 / cat1

Alex2452
источник
что такое структура URL?
Амит
1
Я думаю, что вы путаете с пользовательским типом поста и таксономиями ... но если вы предоставите реальные имена, которые вы используете, это поможет мне лучше понять это. Например, type1 = транспортное средство, cat1 = тип и term1 = автомобиль.
chifliiiii
1
Я согласен с @chifliiiii, что это может помочь нам, если вы точно укажете, как / что вы пытаетесь организовать. Также категории могут иметь подкатегории, которые могут быть проще для формирования структурированной иерархии.
Крис
Этот пост может иметь более подробную информацию и указания для вас: wordpress.stackexchange.com/questions/49141/…
Alex V.

Ответы:

1

Вот часть кода одного из моих проектов по настройке схожей структуры для постоянных ссылок (один и тот же базовый слаг для обоих типов записей и архивов таксономии), обратите внимание на значения параметров has_archive и rewrite обоих записей Тип и таксономия:

add_action( 'init', 'register_my_post_types' );
function register_my_post_types() {

  register_post_type( 'movie',
    array(
        ....

        'has_archive' => 'movies',
        'rewrite' => array(
            'slug' => 'movies/%mv_category%',
            'with_front' => false
        ),
        'taxonomies' => array(
            'mv_category',
        ),
    )
  );

  register_taxonomy(
    'mv_category',
    array(
        'movie'
    ),
    array(
        ...
        'hierarchical' => true,
        'rewrite' => array(
            'slug' => 'movies',
            'with_front' => false,
            'hierarchical' => false
        )
    )
  );
) // end of create_my_post_types function


add_filter('post_type_link', 'filter_post_type_link', 10, 2);
function filter_post_type_link($link, $post)
{
    if ($post->post_type != 'movie')
        return $link;

    if ($cats = get_the_terms($post->ID, 'mv_category'))
        $link = str_replace('%mv_category%', array_pop($cats)->slug, $link);

    return $link;
}

Затем вы можете получить доступ к категории «Документальные» типа поста фильма с этим URL:

site.com/movies/documentary/

и «Фильм А» категории «Документальный фильм» будет:

site.com/movies/documentary/movie-a/

ПРИМЕЧАНИЕ. Важно зарегистрировать таксономию после типа записи, поскольку в WordPress создаются правила перезаписи постоянных ссылок.

Пархам
источник
0

Не имея более конкретных терминов, которые помогут мне понять, что вы на самом деле пытаетесь организовать, я не уверен, что я на правильном пути, но помогает ли этот плагин вам выполнить то, что вы пытаетесь сделать? http://wordpress.org/extend/plugins/cpt-onomies/

Это своего рода объединяет заголовки и таксономии сообщений нестандартного типа странным (и, возможно, полезным?) Способом ...

mltsy
источник