programing

커스텀 포스트 타입의 특집 이미지의 메타박스 제목과 텍스트 라벨을 변경하는 방법

fastcode 2023. 3. 11. 09:32
반응형

커스텀 포스트 타입의 특집 이미지의 메타박스 제목과 텍스트 라벨을 변경하는 방법

저는 Banks의 커스텀 포스트 타입명을 등록했습니다.

이 포스트 타입의 포스트썸네일 메타박스 제목과 텍스트 값을 변경할 수 있습니까?

그게 가능한가요?

좋아! 다른 훅을 사용하여 동일한 잘못된 접근 방식을 여러 개 답하는 오래된 질문!만약 누군가가 필요할 경우를 대비해서, 저는 추가 후크를 사용하거나 메타박스를 편집하지 않고 더 나은 방법을 게시하고 있습니다.

기능을 사용하여 새로운 CPT를 등록할 때 a를 통과시킬 수 있습니다.labels그 논의에 따라 배열합니다.이러한 라벨 중 일부는 CPT 편집 화면용입니다.

$labels = [
    'name'                  => __( 'Banks', 'textdomain' ),
    'singular_name'         => __( 'Bank', 'textdomain' ),
    'add_new'               => __( 'Add New', 'textdomain' ),
    'add_new_item'          => __( 'Add New Bank', 'textdomain' ),  //used in post-new.php?post_type=bank
    'edit_item'             => __( 'Edit Bank', 'textdomain' ), //used in post.php
    'new_item'              => __( 'New Bank', 'textdomain' ),
    'all_items'             => __( 'All Banks', 'textdomain' ),
    'view_item'             => __( 'Vew Bank', 'textdomain' ),
    'search_items'          => __( 'Search Banks', 'textdomain' ),
    'not_found'             => __( 'No banks found', 'textdomain' ),
    'not_found_in_trash'    => __( 'No banks found in trash', 'textdomain' ),
    'parent_item_colon'     => __( 'Parent bank', 'textdomain' ),
    'menu_name'             => __( 'Banks', 'textdomain' ),
    'featured_image'        => __( 'Bank image', 'textdomain' ),    //used in post.php
    'set_featured_image'    => __( 'Set bank image', 'textdomain' ),    //used in post.php
    'remove_featured_image' => __( 'Remove bank image', 'textdomain' ), //used in post.php
    'use_featured_image'    => __( 'Use as bank image', 'textdomain' ), //used in post.php
    'insert_into_item'      => __( 'Insert into bank', 'textdomain' ),  //used in post.php
    'uploaded_to_this_item' => __( 'Uploaded to this bank', 'textdomain' ), //used in post.php
    'filter_items_list'     => __( 'Filter banks', 'textdomain' ),
    'items_list_navigation' => __( 'Banks navigation', 'textdomain' ),
    'items_list'            => __( 'Banks list', 'textdomain' ),
];

$args = [
    'description'           =>  'Bank CPT',
    'public'                =>  false,
    'show_ui'               =>  true,
    'show_in_menu'          =>  true,
    'show_in_admin_bar'     =>  false,
    'has_archive'           =>  false,
    'labels'                =>  $labels,
    'supports'              =>  ['thumbnail'],
    'query_var'             =>  false,
    'can_export'            =>  true,
    'show_in_rest'          =>  false,
];

register_post_type('bank', $args);

방금 토라진 걸 발견했어

여기 예가 있습니다.

add_action( 'admin_head', 'remove_my_meta_boxen' );
function remove_my_meta_boxen() {
    remove_meta_box( 'postimagediv', 'banks', 'side' );
    add_meta_box('postimagediv', __('Add a bank image'), 'post_thumbnail_meta_box', 'banks', 'side', 'high');
}

해피 코딩.

좀 더 알기 쉽게 하기 위해서:

add_action( 'admin_head', 'replace_default_featured_image_meta_box', 100 );
function replace_default_featured_image_meta_box() {
    remove_meta_box( 'postimagediv', 'my-post-type-here', 'side' );
    add_meta_box('postimagediv', __('My Cover Image'), 'post_thumbnail_meta_box', 'my-post-type-here', 'side', 'high');
}

주요 아이디어는 메타 상자를 필요한 제목으로 다시 선언하는 것입니다.디폴트의 「Featured Image」라벨을 편집하는 포스트 타입을 교환합니다.

<?php
/*
 * Change the featured image metabox title text
 */
function km_change_featured_image_metabox_title() {
    remove_meta_box( 'postimagediv', 'my_post_type_name', 'side' );
    add_meta_box( 'postimagediv', __( 'NEW TITLE TEXT', 'km' ), 'post_thumbnail_meta_box', 'my_post_type_name', 'side' );
}
add_action('do_meta_boxes', 'km_change_featured_image_metabox_title' );
/*
 * Change the featured image metabox link text
 *
 * @param  string $content Featured image link text
 * @return string $content Featured image link text, filtered
 */
function km_change_featured_image_text( $content ) {
    if ( 'my_post_type_name' === get_post_type() ) {
        $content = str_replace( 'Set featured image', __( 'NEW SET TEXT HERE', 'km' ), $content );
        $content = str_replace( 'Remove featured image', __( 'NEW REMOVE TEXT HERE', 'km' ), $content );
    }
    return $content;
}
add_filter( 'admin_post_thumbnail_html', 'km_change_featured_image_text' );

언급URL : https://stackoverflow.com/questions/20778182/how-to-change-custom-post-type-featured-image-metabox-title-and-text-labels

반응형