Wie ändere ich den Metabox-Titel und die Textbeschriftungen für benutzerdefinierte Beitragsbilder?

Lesezeit: 3 Minuten

Benutzer-Avatar
Fatih Toprak

Ich habe einen benutzerdefinierten Posttypnamen von Banken registriert.

Kann ich den Titel und den Textwert des Post-Thumbnails-Metafelds dieses Beitragstyps ändern?

Ist das möglich ?

  • Sie sollten die richtige Antwort als die richtige markieren (Posttyp-Etiketten). weil die anderen wirklich falsch sind!

    – Benutzer315338

    27. Februar 2020 um 14:34 Uhr

OK! Alte Frage mit mehreren Antworten des gleichen falschen Ansatzes mit unterschiedlichen Hooks! Falls jemand dies braucht, poste ich eine bessere Möglichkeit, dies zu tun, ohne zusätzliche Hooks zu verwenden oder Metaboxen zu bearbeiten.

Bei der Registrierung eines neuen CPT mit register_post_type Funktion können (und sollten!) wir a übergeben labels Array zu seinen Argumenten. Einige dieser Bezeichnungen sind für den CPT-Bearbeitungsbildschirm.

$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);

Einfach etwas verständlicher machen:

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');
}

Die Hauptidee ist: die Meta-Box mit dem erforderlichen Titel neu zu deklarieren. Ersetzen Sie den Beitragstyp, für den Sie den Standard bearbeiten möchten “Vorgestelltes Bild” Etikett.

Ich habe gerade die Sulotion gefunden.

Hier ist ein Beispiel.

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');
}

Viel Spaß beim Codieren.

<?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' );

1383770cookie-checkWie ändere ich den Metabox-Titel und die Textbeschriftungen für benutzerdefinierte Beitragsbilder?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy