WordPress
맞춤 게시물 유형
수색…
통사론
- register_post_type ($ post_type, $ args);
매개 변수
매개 변수 | 세부 |
---|---|
$ post_type | (문자열) (필수) |
$ args | (배열 / 문자열) (옵션) |
사용자 정의 게시물 유형 등록
도서관 웹 사이트가 있고 책 이라는 맞춤형 게시물 유형이 필요하다고 가정 해보십시오. 다음과 같이 등록 할 수 있습니다.
function create_bookposttype() {
$args = array(
'public' => true,
'labels' => array(
'name' => __( 'Books' ),
'singular_name' => __( 'Book' )
),
);
register_post_type( 'custompost_books', $args );
}
add_action( 'init', 'create_bookposttype' );
그리고 간단히 말해서 사용자 정의 게시 유형이 등록되었습니다.
이 스 니펫은 테마 functions.php
파일 또는 플러그인 구조 내에 배치 할 수 있습니다.
기본 쿼리에 사용자 정의 게시 유형 추가
사용자 정의 게시물 유형을 등록했다고해서 자동으로 기본 쿼리에 추가되는 것은 아닙니다. 기본 쿼리에 맞춤 게시물 유형을 추가하려면 pre_get_posts
필터를 사용해야합니다.
// Show posts of 'post' and 'book' custom post types on home page
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
function add_my_post_types_to_query( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'book' ) );
return $query;
}
기본 RSS 피드에 사용자 정의 게시물 유형 추가
사용자 정의 게시물 유형을 등록한다고해서 자동으로 기본 RSS 피드에 추가된다는 의미는 아닙니다. 사용자 정의 게시물 유형을 기본 RSS 피드에 추가하려면 request
필터를 사용해야합니다.
// Add 'books' custom post types on main RSS feed
function add_book_post_types_to_rss($qv) {
if (isset($qv['feed']) && !isset($qv['post_type']))
$qv['post_type'] = array('post', 'books', );
return $qv;
}
add_filter('request', 'add_book_post_types_to_rss');
사용자 정의 게시물 유형 등록
if ( ! function_exists('products_post_type') ) {
function products_post_type() {
$labels = array(
'name' => _x( 'Products', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Product', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Products', 'text_domain' ),
'name_admin_bar' => __( 'Product', 'text_domain' ),
'archives' => __( 'Item Archives', 'text_domain' ),
'attributes' => __( 'Item Attributes', 'text_domain' ),
'parent_item_colon' => __( 'Parent Product:', 'text_domain' ),
'all_items' => __( 'All Products', 'text_domain' ),
'add_new_item' => __( 'Add New Product', 'text_domain' ),
'add_new' => __( 'New Product', 'text_domain' ),
'new_item' => __( 'New Item', 'text_domain' ),
'edit_item' => __( 'Edit Product', 'text_domain' ),
'update_item' => __( 'Update Product', 'text_domain' ),
'view_item' => __( 'View Product', 'text_domain' ),
'view_items' => __( 'View Items', 'text_domain' ),
'search_items' => __( 'Search products', 'text_domain' ),
'not_found' => __( 'No products found', 'text_domain' ),
'not_found_in_trash' => __( 'No products found in Trash', 'text_domain' ),
'featured_image' => __( 'Featured Image', 'text_domain' ),
'set_featured_image' => __( 'Set featured image', 'text_domain' ),
'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
'use_featured_image' => __( 'Use as featured image', 'text_domain' ),
'insert_into_item' => __( 'Insert into item', 'text_domain' ),
'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
'items_list' => __( 'Items list', 'text_domain' ),
'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
'filter_items_list' => __( 'Filter items list', 'text_domain' ),
);
$args = array(
'label' => __( 'Product', 'text_domain' ),
'description' => __( 'Product information pages.', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'custom-fields', ),
'taxonomies' => array( 'category', 'post_tag' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-products',
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
'show_in_rest' => true,
);
register_post_type( 'product', $args );
}
add_action( 'init', 'products_post_type', 0 );
}
스물 다섯 15 WordPress의 테마를 사용하여 사용자 정의 게시 유형
함수의 이름은 모두 사용할 수 있습니다.
function custom_postype(){
register_post_type('cus_post',array(
'labels'=>array(
'name'=>'khaiyam'// Use any name you want to show in menu for your users
),
'public'=>true,// **Must required
'supports'=>array('title','editor','thumbnail')// Features you want to provide on your posts
));
}
add_action('after_setup_theme','custom_postytpe');
또는
add_action('init','custom_postytpe');
원하는 후크를 사용할 수는 있지만 물론 다른 의미와 용도가 있습니다.
기본 검색의 맞춤 게시물 유형
당신은 기본 wordpress 검색에 사용자 정의 게시물 유형의 게시물을 추가 할 수 있습니다, 아래 코드를 추가 function.php
function my_search_filter($query) {
if ( !is_admin() && $query->is_main_query() ) {
if ($query->is_search) {
$query->set('post_type', array( 'news','post','article' ) );
}
}
}
add_action('pre_get_posts','my_search_filter');
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow