Пользовательская структура постоянной ссылки только для сообщений по умолчанию

Кто-нибудь знает, как изменить структуру url только для одной страницы сообщения?

Когда я перехожу на страницу с сообщением, url должен выглядеть так: example.com/xxx/my-post. Все другие URL-адреса (за исключением отдельных почтовых страниц) не должны содержать «xxx» в URL-адресе.

Настройка параметров постоянной ссылки добавила бы xxx перед таксономиями и категориями, так что это не сработало бы для того, что мне нужно.

По сути, я хочу, чтобы все URL-адреса «post» и «events» содержали дополнительный сегмент «xxx» в структуре.

Решение состоит в том, чтобы перерегистрировать тип сообщения по умолчанию сразу после WordPress и добавить перезаписываемый пул. Кроме того, для параметра _builtin необходимо установить значение false.

add_action( 'init', 'my_new_default_post_type', 1 ); function my_new_default_post_type() { register_post_type( 'post', array( 'labels' => array( 'name_admin_bar' => _x( 'Post', 'add new on admin bar' ), ), 'public' => true, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'map_meta_cap' => true, 'hierarchical' => false, 'rewrite' => array( 'slug' => 'post' ), 'query_var' => false, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ), ) ); } 

Другой метод без возможных побочных эффектов регистрации нового типа сообщения заключается в изменении правил перезаписи для удаления перманентного фронта.

 function wpa37911_permastructs(){ global $wp_rewrite; $wp_rewrite->extra_permastructs['category']['struct'] = '/category/%category%'; $wp_rewrite->extra_permastructs['post_tag']['struct'] = '/tag/%post_tag%'; } add_action( 'init', 'wpa37911_permastructs' );