맞춤 게시물 유형 영구 삭제


13

다음과 같이 게시물 유형을 등록했습니다.

$holidayLabels = array(
    'name' => __( 'Holidays'),
    'singular_name' => __( 'Holidays'),
    'all_items' => __( 'All Holidays'),
    'add_new' => __( 'Add New Holiday'),
    'add_new_item' => __( 'Add New Holiday'),
    'edit_item' => __( 'Edit Holiday'),
    'new_item' => __( 'New Holiday'),
    'view_item' => __( 'View Holidays'),
    'not_found' => __( 'No Holidays found'),
    'not_found_in_trash' => __( 'No Holidays found in Trash'),
    'parent_item_colon' => ''

);

$holidayArgs = array(
    'labels'               => $holidayLabels,
    'public'               => true,
    'publicly_queryable'   => true,
    '_builtin'             => false,
    'show_ui'              => true,
    'query_var'            => true,
    'rewrite'              => array( "slug" => "holidays" ),
    'capability_type'      => 'post',
    'hierarchical'         => false,
    //'menu_position'        => 6,
    'supports'             => array( 'title'),
    'has_archive'          => false,
    'show_in_nav_menus'    => false,

);
register_post_type('holidays', $holidayArgs);

새 휴일을 게시하거나 기존 휴일을 편집 할 때 제목 아래에 나타나는 영구 링크를 제거하고 싶습니다. 여기에 이미지 설명을 입력하십시오

공휴일이 별도의 위젯으로 표시되므로 이것을 제거하고 싶습니다. 어쨌든 관리자가 단일 게시물로 볼 수 있기를 원하지 않습니다. 해당 템플릿이 정의되어 있지 않습니다.


아카이브 페이지를 보유하고 영구 링크로 액세스 할 수 있도록 하시겠습니까?
Krzysiek Dróżdż

@ KrzysiekDróżdż no. 그래서 permalink를 제거하고 싶습니다. 해당 페이지가 없습니다. 휴일은 위젯 자체에 표시되며 모달에는 아약스가 포함 된 세부 사항이 표시됩니다.
SachinGutte

따라서 영구 링크, 아카이브 등을 사용하지 않도록 설정해야합니다. 내 대답을 살펴보십시오;)
Krzysiek Dróżdż

답변:


41

글쎄, 다른 방법이 있습니다. 그리고 더 나은 것 같아요.

register_post_type매개 변수를 살펴 봐야 합니다. 아마도 다음과 같이 설정해야합니다.

'public' => false,  // it's not public, it shouldn't have it's own permalink, and so on
'publicly_queryable' => true,  // you should be able to query it
'show_ui' => true,  // you should be able to edit it in wp-admin
'exclude_from_search' => true,  // you should exclude it from search results
'show_in_nav_menus' => false,  // you shouldn't be able to add it to menus
'has_archive' => false,  // it shouldn't have archive page
'rewrite' => false,  // it shouldn't have rewrite rules

게시물 유형이 공개가 아닌 경우 편집기의이 부분이 표시되지 않습니다.


Krzysiek Dróżdż의 답변을 듣고, 이것은 맞춤 분류법에 적용될 수 있습니까? PD : 여기를 게시 죄송합니다, 나는 간단한 코멘트 할 수있을 정도로 충분한 명성이 없습니다
Gendrith

1

글쎄, 한 가지 빠른 방법은 CSS를 사용하여 컨테이너 div를 숨기는 것입니다.

add_action('admin_head', 'wpds_custom_admin_post_css');
function wpds_custom_admin_post_css() {

    global $post_type;

    if ($post_type == 'post_type') {
        echo "<style>#edit-slug-box {display:none;}</style>";
    }
}

그것은 분명히 이것을하는 한 가지 방법입니다. 그러나 관리자 필터 또는 무언가가 궁금합니다. 그러나 이것은 효과가 있으며 감사합니다.
SachinGutte

1

admin_footer후크 할 작은 JavaScript 코드를 배치하여이 영역을 숨길 수도 있습니다 .

<?php
add_action('admin_footer', function() {
  global $post_type;
  if ($post_type == 'your_custom_post_type') {
    echo '<script> document.getElementById("edit-slug-box").outerHTML = ""; </script>';
  }
});
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.