¿Reordenar los enlaces de medios?

4

Estoy intentando reordenar los enlaces en el cuadro de medios al seleccionar una imagen. Quiero mover "Usar como imagen destacada" sobre el botón Insertar en publicación.

¿También quiero cambiar el nombre del texto "Usar como imagen destacada"? He hecho esto editando el archivo media.php en wp-admin / incudes / media.php pero no quiero editar esto cada vez que actualizo.

¿Es posible reordenar los elementos sin tener que reescribir toda la función?

Gracias de antemano.

EDITAR:

Básicamente, quiero mover el texto sobre el botón y tal vez agregar una etiqueta a la izquierda también como las otras arriba. También quiero cambiar el nombre del texto "usar como imagen destacada".

EDIT

Graciasagoto10porayudarmeallegartanlejos,elcódigosiguiente"funciona", ya que cambia el texto y la ubicación de la imagen mostrada. Aunque como no puedo obtener el ID del archivo adjunto, no guardará la imagen ... funciona escribiendo manualmente el ID del archivo adjunto.

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

Intenté estos para obtener el ID del archivo adjunto:

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

También intenté reemplazar $_GET['post_id'] con $calling_post_id

¿Alguna sugerencia sobre cómo obtener el ID de adjunto? Intenté copiar la mayor parte del código de media.php sin suerte.

    
pregunta Elliott 02.09.2011 - 18:14

1 respuesta

6

Editar: Se agregó un ejemplo de salida del ID del adjunto. Asignado a la variable $ attachment_id, ya que así es como el código central se refiere a ella. Tenga en cuenta que el objeto $post (para el archivo adjunto) se pasa a la devolución de llamada del attachment_fields_to_edit filter , por lo que tendrá acceso a todas las propiedades del archivo adjunto.

Sí, esto se puede hacer sin modificar el núcleo. attachment_fields_to_edit es el filtro que necesita aquí.

Agregue esto a sus funciones.php o complemento:

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

Notas: El filtro attachment_fields_to_edit se aplica en line 1147 in \wp-admin\includes\media.php

La mayoría del código que configura la salida para los botones está en lines 1311-1342 in \wp-admin\includes\media.php , aunque hay algunas variables por encima de line 1311 que se usan para determinar cómo se realiza la salida que no se pasan al attachment_fields_to_edit filter .

Esencialmente, querrás copiar el código del núcleo y agregarlo a tu devolución de llamada customize_attachment_fields_to_edit . Luego formatee el código copiado para que se adapte a sus necesidades, pero tenga en cuenta que es posible que necesite crear algunas de las vars por su cuenta (por ejemplo, $send , si realmente desea duplicar el código central lo más cerca posible).

Aquí hay un enlace a un tutorial bien escrito de Andy Blackwell sobre la personalización de galerías de WP.

    
respondido por el Dave Romsey 03.09.2011 - 23:40

Lea otras preguntas en las etiquetas