Réorganiser les liens multimédia?

4

J'essaie de réorganiser les liens dans la boîte multimédia lors de la sélection d'une image. Je souhaite déplacer "Utiliser comme image sélectionnée" au-dessus du bouton Insérer dans le message.

Je souhaite également renommer le texte "Utiliser comme image sélectionnée"? Je l'ai fait en modifiant le fichier media.php dans wp-admin / incudes / media.php mais je ne souhaite pas le modifier chaque fois que je mets à niveau.

Est-il possible de réorganiser les éléments sans avoir à réécrire toute la fonction?

Merci d'avance.

EDIT:

En gros, je veux déplacer le texte au-dessus du bouton et éventuellement ajouter une étiquette à gauche comme les autres ci-dessus. Je souhaite également renommer le texte "utiliser comme image sélectionnée".

EDIT

Merciàgoto10dem'aideràalleraussiloin,lecodeci-dessous"fonctionne" car il modifie le texte et l'emplacement de l'image sélectionnée. Bien que je ne puisse pas obtenir l'ID de pièce jointe, cela ne sauvegardera pas l'image ... cela fonctionne en tapant manuellement l'ID de la pièce jointe.

function custom_attachment_fields_to_edit($form_fields, $post) {
    $form_fields['buttons'] = array(
        'label' => 'Banner Image',
        'value' => '',
        'input' => 'html'
    );
    $thumbnail = '';
    $calling_post_id = 0;
    if (isset($_GET['post_id']))
        $calling_post_id = absint($_GET['post_id']);
    elseif (isset($_POST) && count($_POST))
        $calling_post_id = $post->post_parent;

    $attachment_id = ???        

    $ajax_nonce = wp_create_nonce( "set_post_thumbnail-$calling_post_id" );
    $form_fields['buttons']['html'] = $thumbnail = "<a class='' id='wp-post-thumbnail-" . $attachment_id . "' href='#' onclick='WPSetAsThumbnail(\"$attachment_id\", \"$ajax_nonce\");return false;'>Set as Banner Image</a>";

    return  $form_fields;
}

add_filter('attachment_fields_to_edit', 'custom_attachment_fields_to_edit', 11, 2); 

Vous avez essayé ces éléments pour obtenir l'ID de pièce jointe:

$args = array('post_type' => 'attachment', 'post_parent' => $_GET['post_id'] ); 
        $attachments = get_posts($args);
        if ($attachments) {
            foreach ( $attachments as $attachment ) {
                $attachment_id = $attachment->ID;
            }
        }

$attachment_id = get_post_meta($_GET['post_id'], '_wp_attachment_image_id', true);
$attachment_id = get_post_meta($_GET['post_id'], '_wp_attachment_url', true );

Essayez également de remplacer $_GET['post_id'] par $calling_post_id

Des suggestions sur la façon d'obtenir l'ID de pièce jointe? J'ai essayé de copier la plupart du code de media.php sans succès.

    
posée Elliott 02.09.2011 - 18:14

1 réponse

6

Modifier: Exemple d’affichage de l’identifiant de la pièce jointe. Attribué à la variable $ attachment_id, car c'est ainsi que le code principal s'y réfère. Notez que l'objet $post (pour la pièce jointe) est transmis au rappel de attachment_fields_to_edit filter . Vous aurez ainsi accès à toutes les propriétés de la pièce jointe.

Oui, cela peut être fait sans modifier le noyau. attachment_fields_to_edit est le filtre dont vous avez besoin ici.

Ajoutez ceci à votre functions.php ou à votre plugin:

add_filter( 'attachment_fields_to_edit', 'customize_attachment_fields_to_edit', 11, 2 ); // Note priority 11 to ensure that the customizations are not overridden
    function customize_attachment_fields_to_edit( $form_fields, $post ) {
        $form_fields['buttons'] = array(
                'label' => '',
                'value' => '',
                'input' => 'html'
        );
        $attachment_id = $post->ID;
        $form_fields['buttons']['html'] = "<h1>Custom stuff here... Attachment ID: $attachment_id</h1>";

        return  $form_fields;
    }

Notes: Le filtre attachment_fields_to_edit est appliqué sur line 1147 in \wp-admin\includes\media.php

La plupart du code qui configure la sortie pour les boutons est sur lines 1311-1342 in \wp-admin\includes\media.php , bien que certaines variables au-dessus de line 1311 soient utilisées pour déterminer la manière dont la sortie est produite et qui ne sont pas transmises à attachment_fields_to_edit filter .

Essentiellement, vous allez vouloir copier le code principal et l'ajouter à votre callback customize_attachment_fields_to_edit . Formatez ensuite le code copié selon vos besoins, mais gardez à l'esprit que vous devrez peut-être créer vous-même certains vars ( $send , par exemple, si vous souhaitez vraiment dupliquer le code de base aussi étroitement que possible).

Voici un lien vers un didacticiel bien écrit. de Andy Blackwell sur la personnalisation des galeries WP.

    
réponse donnée Dave Romsey 03.09.2011 - 23:40

Lire d'autres questions sur les étiquettes