programing

Wordpress에서 사용자 지정 게시 유형 등록 취소

randomtip 2023. 3. 22. 22:59
반응형

Wordpress에서 사용자 지정 게시 유형 등록 취소

Wordpress에서 다른 테마를 통해 설정된 커스텀 투고 유형을 삭제하려고 합니다.이러한 투고는 모두 에 할당되어 있습니다.post_typeportfolio여러 번 검색한 결과, 아래의 코드를 발견했지만, 동작하지 않는 것 같습니다.나는 새로운 주제와 오래된 주제 모두에 그것을 추가해 보았다.functions.php.

post_type을 삭제하고 투고를 일반 투고로 분류하여 표시하고 싶습니다.제가 하고 있는 일은 맞는 것 같습니다만, 제대로 동작하지 않는 것 같습니다.커스텀 투고 타입의 코드와 할당된 투고를 등록 해제하는 코드를 모두 투고했습니다.

게시 유형을 등록하는 코드

if ( ! function_exists( 'unregister_post_type' ) ) :
function unregister_post_type() {
global $wp_post_types;
if ( isset( $wp_post_types[ 'portfolio' ] ) ) {
    unset( $wp_post_types[ 'portfolio' ] );
    return true;
}
return false;
}
endif;

add_action('init', 'unregister_post_type');

게시 유형을 등록한 코드

register_post_type( 'portfolio',
    array(
        'labels' => array(
             'name' => __('Portfolio Items'),
             'singular_name' => __('Portfolio Item'),
             'add_new_item' => __('Add New Portfolio Item'),
             'edit_item' => __('Edit Portfolio Item'),
             'new_item' => __('New Portfolio Item'),
             'view_item' => __('View Portfolio Item'),
             'search_items' => __('Search Portfolio Items'),
             'not_found' => __('No portfolio items found'),
             'not_found_in_trash' => __('No portfolio items found in Trash')
        ),
        'public' => true,
        'show_ui' => true,
        'hierarchical' => false,
        'menu_position' => 7,
        //'rewrite' => array('slug' => 'portfolio'),
        'rewrite' => true,
        '_built_in' => false,
        'taxonomies' => array( 'post_tag','category','portfolio_tag', 'portfolio_category', 'client'),
        'supports' => array( 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions')
    )
);

다음 코드를 사용하여 WordPress 4.6.1에서 제거할 수 있습니다.

function delete_post_type(){
  unregister_post_type( 'portfolio' );
}
add_action('init','delete_post_type', 100);

코드가 좋아 보이네요!단, post_type의 등록을 해제하면...그 안에 있던 포스트가 없어지고...그러니 너무 빨리 등록을 취소하지 마세요.투고 타입의 등록을 해제하기 전에 투고를 post_type에서 일반 투고로 이행합니다.이 플러그인은 https://wordpress.org/plugins/post-type-switcher/ 에 편리합니다.

그러나 비디오 게시물을 기본 게시물로 마이그레이션하지 않으려면...다음과 같은 포트폴리오 유형의 투고를 포함하도록 루프를 수정해야 합니다.

function add_custom_post_type_to_query( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'post_type', array('post', 'portfolio') );
    }
}
add_action( 'pre_get_posts', 'add_custom_post_type_to_query' );

커스텀 투고 타입으로 작업할 때는 permalinks 페이지를 방문하여 WordPress가 변경 내용을 인식할 수 있도록 하는 것을 잊지 마십시오.

이 코드를 사용해 보십시오(우선순위 번호가 큼).

function custom_unregister_theme_post_types() {
    global $wp_post_types;

      if ( isset( $wp_post_types["portfolio"] ) ) {
         unset( $wp_post_types[ "portfolio" ] ); //UPDATED
      }

}
add_action( 'init', 'custom_unregister_theme_post_types', 20 );

주의: 등록된 게시물 유형 이름이 다음 중 하나인지 확인하십시오.portfolio또는portfolios(와 함께), register_post_type($post_type, $s20s)

갱신: unset( $wp_post_types[ "portfolio" ] ); //UPDATED

다음은 워드프레스에서 사용자 지정 게시 유형을 등록 취소하기 위한 코드입니다.기능을 삭제해야 한다는 것만 기억하세요.php는 처음에 당신의 포스트 타입을 등록한 함수의 phpp

if( !function_exists( 'prefix_unregister_post_type' ) ) {
  function prefix_unregister_post_type() {
    unregister_post_type( 'portfolio' );
  }
}
add_action('init','prefix_unregister_post_type');

언급URL : https://stackoverflow.com/questions/36749843/unregister-custom-post-type-from-wordpress

반응형