게시 유형 이름과 다른 아카이브 슬러그를 사용하여 사용자 지정 게시 유형을 만드는 방법
라고 하는 투고 타입을 작성했습니다.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
'programing' 카테고리의 다른 글
WooCommerce ajax로 카트 업데이트 (0) | 2023.03.09 |
---|---|
@RequestParam()에서 기본값을 정수로 지정하는 방법 (0) | 2023.03.09 |
Oracle에서 저장 프로시저를 포함한 개체를 검색하는 SQL (0) | 2023.03.09 |
Wordpress의 스택 오버플로 형식 (0) | 2023.03.09 |
Oracle에서 Enum을 사용하는 방법 (0) | 2023.03.09 |