Intereting Posts
Как получить боковые виджеты в шаблоне левой панели query_vars переопределяет аргументы WP_Query Как изменить запись в зависимости от источника трафика? Google Назначения в WordPress? Не удается сортировать get_posts по post_mime_type Проблема обновления профиля пользователя WP Rest API v2.0 Проблема с полем KEY и VALUE Как открыть диалог добавления медиа в определенном состоянии / вкладке? Как отключить все учетные записи на клиентской стороне без отключения новых учетных записей пользователей? Удаление общих параметров с помощью uninstall.php Получить сообщения для настраиваемого типа сообщений с WP_Query Ссылки категории обрывают https Странная ситуация при попытке получить Github Gist Использование wp_remote_get Как реализовать два отдельных цветных изображения для каждого сообщения / страницы Форма поиска 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-адреса, но поддержка блогов / новостей для обычных сообщений?"