Somente uploader
abaixo de um código de exemplo, funciona apenas na página de edição de postagens. Se você usar também em outra página, inclua a função wp_enqueue_media()
, veja o próximo título.
jQuery(document).ready(function($) {
var _custom_media = true,
_orig_send_attachment = wp.media.editor.send.attachment;
$('.stag-metabox-table .button').click(function(e) {
var send_attachment_bkp = wp.media.editor.send.attachment;
var button = $(this);
var id = button.attr('id').replace('_button', '');
_custom_media = true;
wp.media.editor.send.attachment = function(props, attachment) {
if ( _custom_media ) {
$("#"+id).val(attachment.url);
} else {
return _orig_send_attachment.apply( this, [props, attachment] );
};
}
wp.media.editor.open(button);
return false;
});
$('.add_media').on('click', function() {
_custom_media = false;
});
});
Uma breve explicação do Media Manager
-
Primeiramente, inclua os scripts relevantes, use a função principal:
wp_enqueue_media();
A função configura todas as configurações relevantes, localiza o texto do menu e carrega todos os arquivos javascript apropriados.Você pode adicionar um script personalizado por meio de
wp_enqueue_script()
.// Also adds a check to make sure 'wp_enqueue_media' has only been called once. // @see: http://core.trac.wordpress.org/ticket/22843 if ( ! did_action( 'wp_enqueue_media' ) ) wp_enqueue_media();
Adicione também um script padrão para o cabeçalho personalizado:
wp_enqueue_script( 'custom-header' );
Isso cria um quadro de seleção de imagem e o vincula a um elemento de interface, por exemplo, um botão ou um link. Em seguida, ele chama um URL ou nossa escolha com o ID da imagem selecionada. Este é o mesmo script usado ao selecionar imagens de cabeçalho personalizadas do tema. -
Adicione o botão ao gerenciador de mídia:
<?php $modal_update_href = esc_url( add_query_arg( array( 'page' => 'my_media_manager', '_wpnonce' => wp_create_nonce( 'my_media_manager_options' ), ), admin_url( 'upload.php' ) ) ); ?> <p> <a id="choose-from-library-link" href="#" data-update-link="<?php echo esc_attr( $modal_update_href ); ?>" data-choose="<?php esc_attr_e( 'Choose a Default Image' ); ?>" data-update="<?php esc_attr_e( 'Set as default image' ); ?>"><?php _e( 'Set default image' ); ?> </a> | </p>
-
Definir função de ação Por último, você precisa adicionar um código para processar o ID da imagem que passaremos para o URL do link de atualização de dados.
// Add to the top of our data-update-link page if ( isset($_REQUEST['file']) ) { check_admin_referer( 'my_media_manager_options' ); // Process and save the image id $options = get_option( 'my_media_manager_options', TRUE ); $options['default_image'] = absint( $_REQUEST['file'] ); update_option( 'my_media_manager_options', $options ); }
Fontes e dicas: