Как изменить URI для пользовательского типа записи?
12 нояб. 2011 г., 02:13:52
Просмотры: 29.3K
Голосов: 17
Сайт, над которым я работаю, использует следующую структуру "красивых" ЧПУ-ссылок:
http://example.com/blog/my-special-post
Но для пользовательского типа записи мой клиент хотел бы избежать использования "красивого" слага:
http://example.com/product/142
Как можно использовать ID записи вместо слага для пользовательского типа записи?
Я полагаю, что это возможно сделать с помощью WP_Rewrite, но не знаю, с чего начать.

Lea Hayes
273
Все ответы на вопрос
1
1
Вот что я использую для перезаписи URL пользовательских типов записей с ID записи. Вам нужно правило перезаписи (rewrite rule) для обработки URL-запросов, а также фильтр для post_type_link
, чтобы возвращать правильные URL при вызовах get_post_permalink()
:
add_filter('post_type_link', 'wpse33551_post_type_link', 1, 3);
function wpse33551_post_type_link( $link, $post = 0 ){
if ( $post->post_type == 'product' ){
return home_url( 'product/' . $post->ID );
} else {
return $link;
}
}
add_action( 'init', 'wpse33551_rewrites_init' );
function wpse33551_rewrites_init(){
add_rewrite_rule(
'product/([0-9]+)?$',
'index.php?post_type=product&p=$matches[1]',
'top' );
}

Milo
78.9K
12 нояб. 2011 г. 04:19:47
Похожие вопросы
2
ответов