사용자 정의 게시물 유형의 URI를 다시 작성하는 방법은 무엇입니까?


16

내가 작업하고있는 사이트는 다음과 같은 "예쁜"퍼머 링크 구조를 사용합니다.

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

그러나 사용자 정의 게시물 유형의 경우 고객은 "예쁜"슬러그를 피하고 싶습니다.

http://example.com/product/142

맞춤 게시물 유형의 슬러그 대신 게시물 ID를 어떻게 사용할 수 있습니까?

나는 이것이 WP_Rewrite를 사용하여 가능하다고 생각하지만 어디서부터 시작 해야할지 모르겠다.

답변:


33

이것이 게시물 ID로 맞춤 게시물 유형 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.