web-dev-qa-db-fra.com

Comment changer le libellé du back-end wp-admin?

Je ne souhaite pas modifier les fichiers de base afin de modifier la page où un utilisateur entre de nouvelles publications. Y a-t-il moyen de le faire dans un thème, peut-être dans functions.php ..?

Plus précisément, j'essaie de modifier le libellé du texte "Définir l'image sélectionnée" par "Définir l'image sélectionnée - 50 pixels sur 50 pixels".

4
cannyboy

Vous pouvez utiliser le filtre admin_post_thumbnail_html:

function custom_admin_post_thumbnail_html( $content ) {
    return $content = str_replace( __( 'Set featured image' ), __( 'Set featured image - 50 pixels by 50 pixels' ), $content );
}

add_filter( 'admin_post_thumbnail_html', 'custom_admin_post_thumbnail_html' );
11
sorich87

Une solution consiste à utiliser un code jQuery prudent inséré dans l'en-tête de l'administrateur pour modifier le texte dans une partie spécifique de la page. Pour ce faire, vous devez être en mesure de cibler une balise div/span/html spécifique, mais ce système vous permettra de modifier n’importe quelle partie de la page, même s’il n’ya pas de filtre (bien que la réponse de Sorich ait un excellent filtre pour le cas d'utilisation de votre question, ma réponse s'applique plus généralement à votre question elle-même).

J'ai utilisé le code ci-dessous pour modifier la zone de l'image en vedette dans 2.9 en disant "image en vedette" au lieu de "vignette" car les étiquettes ont été modifiées en 3.0 et je voulais que mon ancien site utilise la nouvelle terminologie avant de la mettre à niveau.

Notez que le code gère à la fois la boîte de dialogue contextuelle et la métabox, et utilise certaines fonctions jquery AJAX pour garantir que le contenu est remodelé après les pageloads dans l'iframe.

/**
 * Use jQuery to add context to the Featured Image metabox on post editing pages
 * and to change the label to be Featured Image instead of Post thumbnail in WP 2.9 
 * before the label changed.
 *
 * See javascript for info on removing these as they become part of the AP API
 */
function gv_admin_featured_image_tweaks() {
    ?>
<script type="text/javascript">
    jQuery(document).ready(function($) {
        /**
         * TEMPORARY: SWITCH VARIOUS LABELS TO SHOW FEATURED IMAGE INSTEAD OF POST THUMBNAIL
         * REMOVE WHEN 3.0 COMES OUT AND THIS IS THE DEFAULT LABEL
         */
        $('#postimagediv h3 span').text('Featured Image');
        // Only change the set thumbnail text if its that, otherwise we end up replacing the img tag when it is set
        if ($('#postimagediv #set-post-thumbnail').text() == 'Set thumbnail') {
            $('#postimagediv #set-post-thumbnail').text('Choose Featured Image');
        }
        $('#postimagediv #remove-post-thumbnail').text('Remove Featured Image');

        // label inside media item details in popup
        $('.wp-post-thumbnail').text('Use as Featured Image');
        // refresh inside media item for after upload finishes.
        $('body').ajaxComplete(function() {
            $('.wp-post-thumbnail').text('Use as Featured Image');
        });

        /**
         * Add a description of how we use featured images. should be replaced with a description parameter in the API
         */
        $('#postimagediv .inside').prepend('<p>This image will be used in the featured posts slider if this post is featured. It should be at least 400px wide by 300px tall.</p>');
    });
</script>
    <?php
}
add_action('admin_head', 'gv_admin_featured_image_tweaks');
5
jerclarke

Solution plus facile ici:

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

L'idée principale est de: re-déclarer la méta-boîte avec le titre requis. Remplacez le type de publication pour lequel vous souhaitez modifier le libellé par défaut " Image sélectionnée ".

0
Reza Mamun