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?
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;
}
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();
});