Wordpress에서 사용자 지정 게시 유형 등록 취소
Wordpress에서 다른 테마를 통해 설정된 커스텀 투고 유형을 삭제하려고 합니다.이러한 투고는 모두 에 할당되어 있습니다.post_type
의portfolio
여러 번 검색한 결과, 아래의 코드를 발견했지만, 동작하지 않는 것 같습니다.나는 새로운 주제와 오래된 주제 모두에 그것을 추가해 보았다.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
'programing' 카테고리의 다른 글
각도 2+ 및 데바운스 (0) | 2023.03.22 |
---|---|
Angularjs ng 반복 테이블 행이 작동하지 않는 경우 클릭 (0) | 2023.03.22 |
Wordpress에서 쿠키를 설정하는 방법 (0) | 2023.03.22 |
아무것도 반환되지 않은 경우의 JSON 디코드 오류 처리 (0) | 2023.03.22 |
오라클이 왜?Oracle에서는 ManagedDataAccess가 작동하지 않습니다.Data Access는 무엇을 합니까? (0) | 2023.03.22 |