Reordenar links de mídia?

4

Estou tentando reordenar os links na caixa de mídia ao selecionar uma imagem. Quero mover "Usar como imagem em destaque" acima da inserção no botão de postagem.

Eu também quero renomear o texto "Use as featured image"? Eu fiz isso editando o arquivo media.php em wp-admin / incudes / media.php, mas eu não quero editar isso toda vez que eu fizer upgrade.

É possível reordenar os elementos sem ter que reescrever toda a função?

Obrigado antecipadamente.

EDITAR:

Basicamente eu quero mover o texto acima do botão e talvez adicionar um rótulo à esquerda também como os outros acima. Eu também quero renomear o texto "usar como imagem em destaque".

EDITAR

Graçasaogoto10pormeajudarachegaratéaqui,ocódigoabaixo"funciona", pois altera o texto e a localização da imagem em destaque. Embora não consiga obter o ID do anexo, ele não salvará a imagem ... ela funciona digitando manualmente no ID do anexo.

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

Tentei obter o ID do anexo:

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

Também tentou substituir $_GET['post_id'] por $calling_post_id

Alguma sugestão sobre como obter o ID do anexo? Eu tentei copiar a maior parte do código de media.php sem qualquer sorte.

    
por Elliott 02.09.2011 / 18:14

1 resposta

6

Editar: Exemplo adicionado de saída do ID do anexo. Atribuí-lo à variável $ attachment_id, pois é assim que o código principal se refere a ele. Observe que o objeto $post (para o anexo) é passado para o retorno de chamada do attachment_fields_to_edit filter , portanto, você terá acesso a todas as propriedades do anexo.

Sim, isso pode ser feito sem modificar o núcleo. attachment_fields_to_edit é o filtro que você precisa aqui.

Adicione isto ao seu functions.php ou 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;
    }

Notas: O filtro attachment_fields_to_edit é aplicado em line 1147 in \wp-admin\includes\media.php

A maior parte do código que configura a saída para os botões está em lines 1311-1342 in \wp-admin\includes\media.php , embora existam algumas variáveis acima de line 1311 que são usadas para determinar como a saída é feita que não é passada para attachment_fields_to_edit filter .

Essencialmente, você vai querer copiar o código principal e adicioná-lo ao seu retorno de chamada customize_attachment_fields_to_edit . Em seguida, formate o código copiado para atender às suas necessidades, mas lembre-se de que talvez seja necessário criar alguns dos seus valores ( $send , por exemplo, se você realmente quiser duplicar o código principal o mais próximo possível).

Aqui está um link para um tutorial bem escrito por Andy Blackwell na personalização de galerias WP.

    
por Dave Romsey 03.09.2011 / 23:40