Як переписати URI користувацького типу публікації?


16

Сайт, над яким я працюю, використовує таку "досить" структуру постійної посилання:

http://example.com/blog/my-special-post

Але для користувацького типу публікації мій клієнт хотів би уникати "гарненького" слизу:

http://example.com/product/142

Як можна використовувати ідентифікатор публікації замість слизи для спеціального типу публікації?

Я вважаю, що це можливо можливо за допомогою WP_Rewrite, але я не знаю, з чого почати.

Відповіді:


33

Це те, що я використовую, щоб переписати власні URL-адреси типу публікації з ідентифікатором публікації. Вам потрібно переписати правило для перекладу запитів 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, це працює на мене чудово ... але я хочу, щоб зміни були, будь ласка, ви можете мене керувати
deemi-D-nadeem
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.