Как изменить slug архивной страницы пользовательского типа записи

5 июл. 2018 г., 19:03:18
Просмотры: 15.2K
Голосов: 5

У меня есть пользовательский тип записи "case-studies", и slug архивной страницы этого CPT выглядит как www.my-domain.com/case-studies, а slug отдельных записей — www.my-domain.com/case-studies/case-study-name.

Теперь, для целей SEO, мне нужно изменить slug архивной страницы на "testimonials-case-studies", чтобы URL архивной страницы стал www.my-domain.com/testimonials-case-studies/, а URL записей остался прежним: www.my-domain.com/case-studies/case-study-name.

Какое оптимальное решение для этой задачи?

Что я уже пробовал:

  • Создавал шаблон пользовательской страницы и менял её slug на /testimonials-case-studies/ с редиректом с /case-studies/, но записи www.my-domain.com/case-studies/case-study-name перестали работать из-за проблем с перенаправлением.

  • Использовал параметр:

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

В настройках custom post type, но при этом slug записей изменился на www.my-domain.com/testimonials-case-studies/case-study-name, а ДОЛЖЕН остаться: www.my-domain.com/case-studies/case-study-name

Есть ли рабочее решение этой проблемы?

0
Все ответы на вопрос 1
2
17

Передайте желаемый ярлык архива через параметр has_archive:

$args = array(
    'rewrite'     => array( 'slug' => 'case-studies' ),
    'has_archive' => 'testimonials-case-studies',
);
5 июл. 2018 г. 19:08:36
Комментарии

Возможно, вам также потребуется unregister_post_type() непосредственно перед повторной регистрацией, чтобы WordPress принял изменения.

WebElaine WebElaine
5 июл. 2018 г. 19:11:29

Точно! Большое спасибо! https://codex.wordpress.org/Function_Reference/register_post_type#has_archive

andresgl andresgl
6 июл. 2018 г. 11:14:05