programing

게시 유형 이름과 다른 아카이브 슬러그를 사용하여 사용자 지정 게시 유형을 만드는 방법

mytipbox 2023. 3. 9. 21:41
반응형

게시 유형 이름과 다른 아카이브 슬러그를 사용하여 사용자 지정 게시 유형을 만드는 방법

라고 하는 투고 타입을 작성했습니다.listing및 부수되는 아카이브 페이지archive-listing.php에 네비게이트 하면/listings아카이브 페이지가 올바르게 로드됩니다.다만, 아카이브 URL은/marketplace. 내가 정의하는 것은rewrite아래 자산은 동작하지 않는 것 같습니다.제가 무엇을 빠뜨리고 있나요?

register_post_type("listing",
    array(
        "menu_icon" => "dashicons-tag",
        "labels" => array(
            "name" => __( "Listings" ),
            "singular_name" => __("Listing")
        ),
        "public" => true,
        "has_archive" => true,
        "rewrite" => array("slug" => "marketplace"),
        "supports" => array("title", "editor"),
        "taxonomies" => array("listing_status")
    )
);

다음 항목도 사용할 수 있습니다.

'has_archive' => 'marketplace'

그러면 아카이브 페이지의 slug는 /marketplace가 되고 단일 페이지는 /listing이 됩니다.

단일 포스트에 의존하지 않고 아카이브 슬래그 변경

커스텀 포스트 타입의 디폴트 slug는 포스트 타입 키(함수의 첫 번째 인수)와 일치합니다.투고하신 예에서는 다음과 같습니다.listing그런 다음 다시 작성 중인 새 슬래그를 지정하여 변경합니다.그러나 그것은 단일 포스트와 아카이브 모두에 영향을 미칠 것이다.

단일 포스트에 대한 일반 슬러그를 보존하면서 아카이브 슬러그를 설정하려면has_archive대신. has_archive는 부울 또는 문자열을 받아들이기 때문에 오해의 소지가 있는 이름입니다.true로 설정하면 아카이브 페이지가 생성됩니다.대신 문자열을 전달하면 slug를 사용자 정의할 수 있습니다.

'has_archive' => 'marketplace',

문맥에서의 예:

register_post_type( 'listing', [
    'menu_icon' => 'dashicons-tag',
    'labels' => [
        'name' => __( 'Listings' ),
        'singular_name' => __( 'Listing' ),
    ],
    'public' => true,
    'has_archive' => 'marketplace',
    'supports' => [ 'title', 'editor' ],
    'taxonomies' => [ 'listing_status' ],        
]);

퍼머링크 플러싱

새로운 커스텀 포스트 타입을 등록할 때는 퍼머링크를 플러시해야 합니다.

그러기 위해서는 admin에서 [Settings]-> [ Permalinks ]으로 이동하여 [Save]를 누릅니다(변경할 필요는 없습니다).

배포될 무언가를 작성하는 경우 대신 프로그래밍 방식으로 수행하는 것이 좋습니다.뛰어가야 해flush_rewrite_rules()플러그인의 활성화에 접속하거나after_switch_theme액션.메뉴얼은, https://codex.wordpress.org/Function_Reference/flush_rewrite_rules 를 참조해 주세요.

Settings -> Permalink structure를 디폴트로 갱신하고 %%postname%%로 갱신해 주세요.

언급URL : https://stackoverflow.com/questions/39402146/how-to-create-a-custom-post-type-with-an-archive-slug-that-differs-from-the-post

반응형