web-dev-qa-db-fra.com

Définissez le lien de pièce jointe de téléchargement multimédia sur aucun et masquez-le dans WP v3.5

Dans la page contextuelle Media Upload, comment définir le lien sur la pièce jointe sur none et le masquer dans Wordpress version 3.5? Le filtre suivant fonctionnait correctement dans les versions antérieures de WP:

function my_attachment_fields_edit($form_fields,$post){ 
    // Set attachment link to none and hide it.
    $html = "<input type='hidden' name='attachments[".$post->ID."][url]' value=''/>";

    $form_fields['url']['html'] = $html; //Replace html
    $form_fields['url']['label'] = ''; //Remove label
    $form_fields['url']['helps'] ='';//Remove help text

    return $form_fields;
}
add_filter('attachment_fields_to_edit', 'my_attachment_fields_edit', 10, 2);

C'était en fait un excellent filtre posté par quelqu'un ici, je crois. Est-ce que quelqu'un sait comment accomplir cela dans WP 3.5?

5
Christine Cooper

Incluez ce petit plugin, activez et testez.

Une version testée en 3.6-alpha, ne fonctionne que sur un clic sur une vignette.

<?php
/**
 * Plugin Name: Remove Attachment Link-To and set to value 'none' 
 */

add_action( 'admin_footer-post-new.php', 'wpse_76214_script' );
add_action( 'admin_footer-post.php', 'wpse_76214_script' );
function wpse_76214_script() {
    ?>
    <script type="text/javascript">
    jQuery(document).ready( function($) {
        $( 'li.attachment' ).live( 'click', function( event ) {
            $( ".link-to > [value='none']").attr( "selected", true ); // selected none in select field
            $( ".link-to-custom" ).val( '' ); // clear input field for target of link
            $( '.media-sidebar div.setting' ).remove(); // remove link field
        });
    } );
    </script>
    <?php
}

// filter a-Tag in data, there was send to edit; fallback
add_filter( 'media_send_to_editor', 'wpse_76214_send_to_editor', 10, 3 );
function wpse_76214_send_to_editor( $html, $id, $attachment ) {

    $html = preg_replace( '@\<a([^>]*)>(.*?)\<\/a>@i', '$2', $html );

    return $html;
}
5
bueltge

Une mauvaise méthode consiste à intercepter n'importe quel clic de n'importe où et à masquer la div contenant les "PARAMÈTRES D'AFFICHAGE D'ATTACHE". En supposant que vous avez jQuery:

$(window).click(function() {
    $('.attachment-display-settings').hide();
});
0
Boris Yakubchik