Intereting Posts
Как показать базу изображений по категории Лучшее изображение не работает из-за пользовательской роли пользователя? Условные теги внутри класса Можно ли запускать какой-либо JavaScript при вскрытии всплывающей подсказки? Автоматически добавлять тег в соответствии с пользовательскими метаданными Невозможно показать количество комментариев за каждый пост вне цикла Получение term_id для вновь созданного или отредактированного термина Получите все липкие сообщения от одного пользователя через идентификатор пользователя Сортировка сообщения по атрибутам 'order' WordPress the_content () возвращает только одно изображение из определенной категории Добавление столбца тега Alt Tag в список медиатеки Захват в $ wpdb Отправить функцию для заказа деталей в backend Admin Отключение кэширования WP-Admin в htaccess Пользовательский класс post, генерирует уникальный идентификатор от 1 до x в зависимости от количества сообщений?

Удаление родительского пула из URL-адреса в настраиваемом типе сообщений

Как указано в заголовке, я хотел бы удалить родительские пули из URL-адресов для определенных типов сообщений: services.

Что-то, что изменило бы это:

http://demo.com/parent-service/child-service-1 http://demo.com/grand-parent-service/parent-service/child-service-2 http://demo.com/great-grand-parent-service/grand-parent-service/parent-service/child-service-3 etc 

Что-то вроде этого:

 http://demo.com/child-service-1 http://demo.com/child-service-2 http://demo.com/child-service-3 etc 

Я бы предпочел не использовать дополнительные плагины для этого. Я в настоящее время доставляю CPT через плагин, который также регистрирует пользовательскую таксономию.

Solutions Collecting From Web of "Удаление родительского пула из URL-адреса в настраиваемом типе сообщений"

В быстром испытании я был удивлен, обнаружив, что это работает из коробки. То есть, канонический URI для дочернего поста все еще имеет родителя в пути, но дочерний пост работает так же хорошо без него (не 404, не перенаправляет). В результате, это просто вопрос фильтрации post_type_link чтобы заставить это работать, как вы просите! Следующий код должен сделать именно это:

 function wpse_101072_flatten_hierarchies( $post_link, $post ) { if ( 'service' != $post->post_type ) return $post_link; $uri = ''; foreach ( $post->ancestors as $parent ) { $uri = get_post( $parent )->post_name . "/" . $uri; } return str_replace( $uri, '', $post_link ); } add_filter( 'post_type_link', 'wpse_101072_flatten_hierarchies', 10, 2 );