Fetfurmoz
@Fetfurmoz
frontend

Wordpress как скрыть slug post_type?

Здравствуйте, искал не нахожу решение, разные варианты пробовал не работает как надо, посмотрел по документации, можно вот так сделать
register_post_type( 'miomedclinic_program', [
		'label'  => null,
		'labels' => [
			'name'               => __('Программы снижения веса'),
			'singular_name'      => __('Программа'),
		],
		'public'              => true,
		'has_archive'         => true,
		'exclude_from_search' => true,
		'show_ui'             => true,
		'menu_icon'           => 'dashicons-networking',
		'supports'            => [ 'title', 'editor', 'thumbnail','excerpt', ],
		'show_in_rest' => true,
		'rewrite' => array(
			'slug'          => '/',
			'with_front'    => false
		),
	]

'rewrite' => array(
			'slug'          => '/',
			'with_front'    => false
		),

вот этот кусок кода убирает slug post_type все отлично, но теперь кастомные записи выдают ошибку 404 как это поправить ?
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 2
@pantsarny
Зайдите на страницу настроек пермалинков нажмите сохранить , это сбросит кеш реврайтов
Ответ написан
Fetfurmoz
@Fetfurmoz Автор вопроса
frontend
Кому то может пригодится вот так сделал.

'rewrite' => array(
			'slug'          => '/',
			'with_front'    => false
		),
	] );

}


function check_parse_request( $query ) {

if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
        return;
    }

    if ( ! empty( $query->query['name'] ) ) {
         // miomedclinic_program - это заменить на свой slug ( post_type )
        $query->set( 'post_type', array( 'post', 'miomedclinic_program', 'page' ) );
    }
}
add_action( 'pre_get_posts', 'check_parse_request' );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы