Intereting Posts
Обновление WordPress полностью сломало установку. На главной странице теперь отображается пустая rss-лента Есть ли плагин, который учитывает сообщения автора? Как восстановить событие после сохранения виджета Нужно ли нам использовать ftp для восстановления из-за неправильного редактирования functions.php? $ item-> url не извлекает url в пользовательском ходоке? Показать всех авторов в шаблоне темы Автоматический счетчик числа дел DIVI Показать сообщение по таксономии и таксономии Как преобразовать функциональные возможности вкладки в wordpress, используя только один запрос? как проектировать изменения на странице корзины woocommerce и на любой другой странице также по теме? Как использовать другую базу данных для отображения и управления комментариями в бэкэнд get_option () не работает, даже db содержит соответствующее имя_параметра и option_value Как использовать has_archive, но отключить фид для типа публикации? Почему цветные изображения иногда обрезаются, а иногда Многие плагины заставляют WordPress работать медленно по дизайну?

Удаление пула CPT из URL-адреса, но поддержка блогов / новостей для обычных сообщений?

Я работаю над этим несколько часов и, кажется, ударил стену.

В настоящее время у меня есть настраиваемая структура постоянной ссылки, например:

/news/%category%/%postname%/

Это работает отлично и, как ожидалось, но для обычных сообщений.

У меня есть пользовательские службы типа services которые работают, когда вы переходите в /services/%postname%/%postname% меня есть родительские / дочерние сообщения.

Но цель состоит в том, чтобы попытаться удалить службы из URL, поэтому у меня есть только %postname% для этого типа сообщения.

Мне удалось удалить службы из пули страницы в редакторе, что было просто. Но я не могу перейти на какие-либо страницы сейчас без 404 или методов, которые я пробовал, заканчивая / news / перед именами страниц, что также приводит к 404.

Может ли кто-нибудь помочь? или, по крайней мере, рассказать мне, что то, что я делаю, никогда не сработает?

Код до сих пор:

 function test_remove_cpt_slug( $post_link, $post, $leavename ) { if ( 'test_services' != $post->post_type || 'publish' != $post->post_status ) { return $post_link; } $post_link = str_replace( '/services/', '/', $post_link ); return $post_link; } add_filter( 'post_type_link', 'test_remove_cpt_slug', 10, 3 ); function test_custom_rewrite_basic() { add_rewrite_rule('([az 1-9]+/?[az 1-9]+)', 'index.php?name=$matches[1]&post_type=test_services', 'top'); } add_action('init', 'test_custom_rewrite_basic'); function test_parse_request( $query ) { if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) { return; } if ( ! empty( $query->query['name'] ) ) { $query->set( 'post_type', array( 'post', 'test_services', 'page' ) ); } } add_action( 'pre_get_posts', 'test_parse_request' ); 

Теперь проблема в том, что мне не нравится тот факт, что post-type находится в правиле перезаписи, но удаление должно было позволить pre post получить запрос этого типа сообщения?

В любом случае, страницы, которые являются родителями или отдельными страницами, так что /parent/ or /single/ похоже, работают нормально, но на дочерних страницах этого нет. Я проверил мое регулярное выражение и все еще применяю правило перезаписи к дочерним страницам, просто давая 404.

Solutions Collecting From Web of "Удаление пула CPT из URL-адреса, но поддержка блогов / новостей для обычных сообщений?"