Как удалить префикс (slug) из URL у произвольных типов записей

Как удалить префикс (slug) из URL у произвольных типов записей

3 февраля 2020 WordPress

При создании произвольного типа записей, в WordPress автоматически добавляется префикс с его именем в URL, например www.site.ru/prefix/zapis/. Изменить его можно в параметре rewrite. А вот чтобы полностью удалить, можно воспользоваться приведенным в этой статье хаком.

Для начала удаляем параметр rewrite, а лучше устанавливаем его в false в функции создания кастомного типа записи register_post_type(), обычно она находится в файле functions.php вашей темы.

Затем в этом же файле добавляем несколько функций:

function it-blog_post_type_rewrite() {
	global $wp_rewrite;
	// изменить portfolio на ваш тип записи
	$wp_rewrite->add_rewrite_tag("%portfolio%", '([^/]+)', "portfolio=");
	$wp_rewrite->add_permastruct('portfolio', '%portfolio%' );
}
 
add_action( 'init', 'it-blog_post_type_rewrite');
function it-blog_rewrite_conflicts( $request ) {
	if(!is_admin())
		$request['post_type'] = array('portfolio', 'post', 'page'); // вместо portfolio ваш тип записи
	return $request;
}
add_filter( 'request',  'it-blog_rewrite_conflicts' );

Так же вам может помочь справочник php

Теперь идем в Настройки → Постоянные ссылки, выбираем Название записи.

Можно попробовать оставить настройки как и были и просто пересохранить. Но были случаи, что без выбора Название записи хак не работал.

В моем случае все заработало, кроме главной страницы, она перестала отображаться. При чем проверки функциями WP is_front_page() и is_home() не срабатывали. Пришлось дописать проверку так $_SERVER['REQUEST_URI'] != '/' В итоге получился следующий код:

function it-blog_rewrite_conflicts( $request ) {
	if(!is_admin() && $_SERVER['REQUEST_URI'] != '/')
		$request['post_type'] = array('portfolio', 'post', 'page'); // вместо portfolio ваш тип записи
	return $request;
}
add_filter( 'request',  'it-blog_rewrite_conflicts' );
Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Похожие записи
Правильный файл robots.txt для WordPress 2023

Самый оптимальный и простой код файла robots.txt для вашего сайта на WordPress, который подойдет для всех поисковиков. Этот вариант использую на данном сайте. Не забудьте заменить it-blog.ru на адрес вашего сайта. Если вы используете HTTPS, в директиве Host: нужно указать Читать далее

WPGrabber установка и настройка с примерами, скачать плагин бесплатно

WPGrabber это парсер для WordPress, с помощью которого можно скачать и сохранить записи с абсолютно любого доступного веб-сайта. Обычно его применяют для парсинга каталога товаров или новостей. Плагин может полностью автоматизировать добавление контента на сайт. Можно настроить его автоматический запуск Читать далее

Как создать интернет-магазин на WordPress

WooCommerce несомненно является лучшим бесплатным решением для создания интернет-магазина на WordPress. Кроме того, это одна из лучших платформ электронной коммерции с открытым исходным кодом. Цифры говорят сами за себя: более 4 миллионов установок, рейтинг 4.5 (на основе более чем 3000 Читать далее

Как установить WordPress: полное руководство для начинающих

Это полное пошаговое руководство для начинающих, которое поможет вам создать свой первый сайт на WordPress на любом веб-хостинге или локальном сервере. Почему WordPress? WordPress является самой популярной платформой для создания веб-сайтов. На сегодняшний день её используют 59% всех веб-сайтов созданных Читать далее

WordPress создание темы с нуля

Давно хотел написать подробное руководство о том, как создать тему на WordPress с нуля. Вам это пригодится: если вы хотите научиться разрабатывать сайты на WP, а не просто устанавливать шаблонные решения; вы хотите сделать уникальный дизайн для своего сайта или Читать далее

Как создать виджет WordPress

Виджеты используются для добавления контента на страницу WordPress без изменения шаблонов тем. Боковая панель является областью по умолчанию для добавления содержимого виджетов. Также вы можете зарегистрировать собственную область виджетов и добавить в нее виджеты. WordPress содержит некоторые виджеты по умолчанию Читать далее

Оптимизация WordPress

Ваш сайт WordPress может быть медленным по многим различным причинам: забитая база данных, работающая в фоновом режиме, является одним из них. Профессиональный рабочий процесс поддержки WordPress включает в себя регулярную оптимизацию базы данных, в ходе которой вы избавляетесь от ненужных Читать далее

4 комментария на «Как удалить префикс (slug) из URL у произвольных типов записей»

  1. лев:

    не сработало

  2. Антон:

    Должно работать. На этом сайте так сделано. Попробуйте сделать еще раз все по инструкции.

  3. Александр:

    Не работает, если дочерних категорий больше 1.
    Например:
    https://it-blog.ru/wordpress/kak-udalit-prefiks/slug-iz-url/proizvolnyh-tipov-zapisej/

  4. Алексей:

    Всё круто работает, спасибо! Но не работает пагинация.
    То есть, у меня тип данных uslugi, её посты открываются по своему slug без /uslugi/ в урле. И сама страница /uslugi/ тоже работает. Но /uslugi/page/2/ делает 301 на /uslugi/. Подскажите, пожалуйста, как от этого избавиться?

Добавить комментарий

*

code