Вопрос или проблема
На моем сайте блоги имеют адреса вида %category%/%postname%
. Однако я хочу, чтобы URL блогов были /blogs/%postname%
. Я знаю, что могу перейти в настройки постоянных ссылок и добавить blogs
как префикс перед %postname%
. Однако у меня также есть пользовательские типы записей. Это приведет к тому, что префикс blogs
добавится и к пользовательским типам записей. Например, у меня есть пользовательский тип записи под названием whitepapers
, и все эти URL имеют вид whitepapers/%postname%
. Если я изменю структуру постоянной ссылки, как описано выше, это станет blogs/whitepapers/%postname%
.
Как изменить структуру URL только для blogs
, оставив пользовательские типы записей без изменений?
Как упомянула @sally-cj в своем комментарии, что также является решением:
Если вы установили пользовательский префикс постоянной ссылки (например: /blogs/%postname%/
) для своих блогов (что будет приводить к: yoursite.com/blogs/lorem-ipsum-dolor
), то он также может применяться к вашим пользовательским типам записей (в результате чего получится: yoursite.com/blogs/customposttype/dolor-sit-amet
). Самое простое и стандартное решение – установить аргумент with_front
в false
для пользовательских типов записей.
Если вы используете ACF, вы можете найти это в:
Редактирование типа записи -> Расширенные настройки -> URL -> Префикс URL передней части (установите это на false
)
Ответ или решение
Для того чтобы изменить структуру URL только для блога и добавить префикс «blogs» без влияния на пользовательские типы публикаций, необходимо использовать настройки, связанные с параметром with_front
, который позволяет управлять тем, применяются ли префиксы к пользовательским типам публикаций.
Вот пошаговая инструкция для решения вашей задачи:
-
Настройка постоянных ссылок для блога:
- Перейдите в админ-панель вашего WordPress.
- Выберите
Настройки
->Постоянные ссылки
. - Установите структуру постоянных ссылок для записей блога как
/blogs/%postname%/
.
-
Настройка пользовательских типов публикаций (CPT):
- Если вы используете плагин для создания пользовательских типов публикаций (например, ACF или соответствующий регистрационный код в
functions.php
), найдите настройки для вашего пользовательского типа. - В разделе настроек для типa публикации, в разделе «Расширенные настройки» (или «Advanced Settings»), вы должны найти опцию
Front URL Prefix
или что-то аналогичное. - Убедитесь, что параметр
with_front
установлен на значениеfalse
. Это позволит предотвратить добавление префиксаblogs
к URL ваших пользовательских типов публикаций.
- Если вы используете плагин для создания пользовательских типов публикаций (например, ACF или соответствующий регистрационный код в
-
Пример кода для регистрации пользовательского типа публикаций:
Если вы регистрируете пользовательские типы публикаций через код, вы также можете добавить параметрwith_front
в вызов функцииregister_post_type
. Вот пример:function my_custom_post_types() { register_post_type('whitepapers', array( 'labels' => array( 'name' => __('Whitepapers'), 'singular_name' => __('Whitepaper'), ), 'public' => true, 'has_archive' => true, 'rewrite' => array('with_front' => false), // Устанавливаем false для отсутствия префикса 'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'), )); } add_action('init', 'my_custom_post_types');
-
Проверка результата:
- После внесения изменений, не забудьте перейти в админ-панели в секцию
Настройки
->Постоянные ссылки
и просто нажать «Сохранить изменения», даже если вы не вносили изменений. Это обновит правила перезаписи. - Проверьте URL для блога и пользовательского типа публикаций. Блог должен выглядеть как
yoursite.com/blogs/lorem-ipsum-dolor
, а пользовательские типы публикаций, такие как «whitepapers», должны оставаться, например,yoursite.com/whitepapers/dolor-sit-amet
.
- После внесения изменений, не забудьте перейти в админ-панели в секцию
Эти шаги позволят вам адаптировать структуру URL на вашем сайте в соответствии с вашими требованиями, обеспечивая при этом целостность пользовательских типов публикаций.