Vous cherchez un moyen d'ajouter une metabox à votre menu d'écran d'édition de publication contenant tous les fichiers audio ? Bien qu'il existe probablement un plugin pour cela, nous avons créé un extrait de code rapide que vous pouvez utiliser pour ajouter une metabox personnalisée listant tous les fichiers audio de la médiathèque dans WordPress.
Instructions :
Il vous suffit d'ajouter ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site :
add_action("admin_init", "audio_init");
add_action('save_post', 'save_audio_link');
function audio_init(){
add_meta_box("mp3-audio", "MP3 AUDIO", "audio_link", "post", "normal", "low");
}
function audio_link(){
global $post;
$custom = get_post_custom($post->ID);
$link = $custom["link"][0];
$count = 0;
echo '<div class="link_header">';
$query_audio_args = array(
'post_type' => 'attachment',
'post_mime_type' =>'audio',
'post_status' => 'inherit',
'posts_per_page' => -1,
);
$query_audio = new WP_Query( $query_audio_args );
$audio = array();
echo '<select name="link">';
echo '<option class="audio_select">SELECT AUDIO FILE</option>';
foreach ( $query_audio->posts as $file) {
if($link == $audio[]= $file->guid){
echo '<option value="'.$audio[]= $file->guid.'" selected="true">'.$audio[]= $file->guid.'</option>';
}else{
echo '<option value="'.$audio[]= $file->guid.'">'.$audio[]= $file->guid.'</option>';
}
$count++;
}
echo '</select><br /></div>';
echo '<p>Selecting an audio file from the above list to attach to this post.</p>';
echo '<div class="audio_count"><span>Files:</span> <b>'.$count.'</b></div>';
}
function save_audio_link(){
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ return $post->ID; }
update_post_meta($post->ID, "link", $_POST["link"]);
}
add_action( 'admin_head', 'audio_css' );
function audio_css() {
echo '<style type="text/css">
.audio_select{
font-weight:bold;
background:#e5e5e5;
}
.audio_count{
font-size:9px;
color:#0066ff;
text-transform:uppercase;
background:#f3f3f3;
border-top:solid 1px #e5e5e5;
padding:6px 6px 6px 12px;
margin:0px -6px -8px -6px;
-moz-border-radius:0px 0px 6px 6px;
-webkit-border-radius:0px 0px 6px 6px;
border-radius:0px 0px 6px 6px;
}
.audio_count span{color:#666;}
</style>';
}
function audio_file_url(){
global $wp_query;
$custom = get_post_custom($wp_query->post->ID);
echo $custom['link'][0];
}
Ajoutez cet extrait de code pour afficher l'URL audio spécifiée dans votre fichier de modèle WordPress.
<?
audio_file_url()
?>
Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière d'ajouter correctement des extraits de code dans WordPress, afin de ne pas endommager accidentellement votre site.
Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site tels que : 19 meilleurs plugins WordPress pour photographes et 30 façons de gagner de l'argent en tenant un blog en ligne.
Salut Kevin, pourriez-vous me dire comment obtenir l'URL à afficher comme shortcode audio dans mon thème ?
Salut,
Tout d'abord, c'est brillant, je pense que quelque chose comme ça devrait faire partie des fonctionnalités de base de WordPress.
J'ai regardé cela pour voir si je peux l'utiliser comme guide pour quelque chose que je fais. Je me demande s'il existe un moyen d'adapter cela pour afficher des catégories de liens plutôt que des fichiers multimédias ? Les metabox avec des cases à cocher et des champs me sont familières, mais les listes déroulantes sont nouvelles pour moi, et je joue avec get_terms(link_category) mais c'est un peu au-delà de mes capacités pour savoir comment l'intégrer dans une solution comme celle-ci.
Des idées ? Sinon, ce n'est pas grave.
Merci !
Salut Jen,
Qu'est-ce que vous essayez de faire ? Si vous m'envoyez un e-mail rapide à ce sujet, je devrais être en mesure de vous aider à démarrer.
http://wpsnipp.com/index.php/contact/
Merci beaucoup ! C'est exactement ce dont j'avais besoin !
Salut Doug, cool content que tu aimes l'extrait.
Bonjour,
Merci pour votre message.
J'ai une question : comment afficher le nom du fichier au lieu de l'URL du fichier.
Désolée pour mon mauvais anglais.
Anne
Salut Anne, Vous remarquerez aux lignes 24 et 26 – $file->guid remplacez la deuxième occurrence sur chaque ligne ou guid par post_title par exemple : $file->post_title
ligne 24
———-
echo ‘guid.'” selected=”true”>’.$audio[]= $file->guid.”;
à
echo ‘guid.'” selected=”true”>’.$audio[]= $file->post_title.”;
ligne 26:
———–
echo ‘guid.'”>’.$audio[]= $file->guid.”;
à
echo ‘guid.'”>’.$audio[]= $file->post_title.”;
Bonjour Kevin,
Merci beaucoup pour votre aide !
Anne
Pas de problème Anne, profitez des extraits WordPress,
eh bien, de bons conseils. Y a-t-il un site exemple qui utilise déjà votre script avec succès ?
C'est difficile à savoir car beaucoup de gens aiment cet extrait, mais comme c'est un extrait d'administration, il est difficile de le dire.
Salut Kevin, j'ai une demande qui pourrait aussi concerner cet article. J'espère que vous pourrez y jeter un œil et envisager de publier un article à ce sujet.
Mes utilisateurs utilisent des champs personnalisés pour joindre des fichiers tels que pdf, word, etc. à leurs publications. Ce serait merveilleux si je pouvais rendre un peu plus facile pour les lecteurs de comprendre qu'il s'agit d'un fichier plutôt que d'un lien vers d'autres sites en ajoutant automatiquement une icône à gauche du titre du fichier.
Par exemple, un utilisateur télécharge un fichier pdf et sous le contenu (front-end) il y a le titre du fichier et une icône pdf à côté du titre. J'utilise habituellement le plugin Custom Field Template.
J'apprécie votre préoccupation.
Salut Zeb, vous pouvez faire ce genre de chose avec javascript,
http://cool-javascripts.com/jquery/add-icons-to-your-links-automatically-using-jquery-css.html
Fonctionne très bien. cependant je vais regarder une version mise à jour de cet extrait également.
Merci pour votre réponse Kevin.
Comme vous l'avez déjà indiqué, il a besoin d'une mise à jour. Il utilise jQuery 1.2.6 qui est obsolète et je ne suis pas tout à fait sûr s'il est optimisé pour Wordpress et s'il présente des problèmes de sécurité. Ce serait gentil de votre part si vous pouviez publier une mise à jour pour cela.
Santé
Salut Zeb,
Je publierai une mise à jour bientôt, cependant il n'utilise pas JQuery, donc cela ne devrait pas poser de problème.