Metabox wordpress – petites astuces

Ne pas faire apparaitre les valeurs dans les champs personnalisé

Si vous ne souhaitez pas que les meta de vos meta boxes apparaissent dans les champs personnalisés, il suffit d’ajouter un underscore avant la clé.

add_post_meta($id, '_cle', 'valeur');

Cacher les champs personnalisés

Il peut vous arriver d’avoir besoin d’interdire l’accès aux champs personnalisés quand vous créez des meta boxes.

add_action('admin_init','remove_custom_meta_boxes');
function remove_custom_meta_boxes() {
remove_meta_box('postcustom','post','normal');
remove_meta_box('postcustom','page','normal');
}

Les custom fields de wordpress

Ajout de champs personnalisés.

WordPress permet aux auteurs d’ajouter des champs personnalisés. Ces champs peuvent permettre d’ajouter tout type d’informations ( texte,  date, url , image ) qu’on souhaiterait afficher ailleurs que dans le contenu principal de la page

Ces informations connues sous le nom de meta-data sont composées d’une paire clé/ valeur. La clé est le nom de la meta-data et la valeur est l’information que l’on souhaite lui voir associé.
La clé peut être utilisé plusieurs fois par poste , elle doit donc être unique. Dans mon exemple j’utilise des clés sans espace ni accent mais vous pouvez untiliser espace et caractères accentués.

Imaginons que nous souhaiterions créer une bibliothèque musicale :

Nous pourrions utiliser dans notre article  (afin d’avoir une mise en page vraiment spécifique) :

  • Le titre de l’article pour afficher le nom artiste
  • Le contenu principal pour la track list de l’album
  • L’image à la une pour l’image représentant l’album
  • Une meta-data nom_album pour afficher le nom de l’album
  • Une meta-data annee_album pour ajouter les années
  • Les catégories pour ajouter des genres
  • Les  catégories pour ajouter les labels

 

NB : En réalité, pour gérer ce genre d’article, il serait préférable d’utiliser les custom post type, taxonomy  et meta-box qui sont bien plus appropriés.

 

1 – Pour débuter il faut afficher les champs personnalisés. Si vous ne les voyez pas, cliquez sur l’onglet options de l’écran en haut à droite puis cocher champs personnalisés.

options-de-ecran
options-de-l’écran

2 – Ensuite ajoutons le nom de l’artiste dans le champs titre
3 – dans le contenu principal ajoutons la tracklist de l’album
4 – puis nous uploadons l’image représentant l’album dans l’image à la une
5 – puis nous créons 2 catégories parentes : genres et lables dans lesquels nous renseignons les infos

categories
categories

6 – enfin nous ajoutons les meta-data

custom fields
custom fields

Ce qui nous donne au final

wordpress custom fields
wordpress custom fields

 

Affichage des custom fields sur le site

Ajouter des custom fields , c’est bien mais pouvoir les afficher c’est mieux !

Lorsqu’on ajoute des champs personnalisés à un article, il est possible de récupérer toutes les metas d’un coup en utilisant

the_meta();

Cependant, cela ne nous arrange pas car nous allons avoir un contenu formaté sus cette forme:

<ul class="post-meta">
 <li><span>nom_album:</span> Back to black</li>
 <li><span>annee_album:</span> 2006</li>
 </ul>

NB : concernant les nom des clés des meta, j’ai utilisé un identifiant sans espace ni accent par habitude mais il est possible d’écrire « Nom album » au lieu de « nom_album »

Voir la doc

Ce qui serait bien , c’est de pouvoir récupérer chaque paire clé/valeur séparément.

Cela est possible avec la fonction

get_custom_meta();

qui peut prendre 3 arguments :

get_post_meta($post_id, $key, $single);
  • $post_id : ID du post dont on souhaite récupérer la meta. Utilisez $post->ID ou get_the_ID();  pour récupérer la valeur de l’ID du post.
  • $key : nom de la  clé , ici nom_album ou annee_album
  • $single :  boolean. La fonction retourne un résultat sous forme de string si la valeur est sur true et un tableau, array si la valeur est  false ou non définit

Nous allons d’abord voir ce que contient get_post_meta(); lorsque l’argument $single est défini sur false :

<!--?php $getpostmeta = get_post_meta( $post-&gt;ID , 'nom_album' , false ); print_r($getpostmeta); var_dump($getpostmeta); &lt;/pre&gt; &lt;p&gt;Cela nous montre le contenu du tableau&lt;/p&gt; &lt;h3&gt;Afficher une valeur spécifique&lt;/h3&gt; &lt;p&gt;Si on souhaite afficher notre valeur sous forme de chaine de caractère :&lt;/p&gt; &lt;pre lang="php"&gt; $value1 = get_post_meta($post-&gt;ID, 'nom_album', true); echo $value1; // affichera Back to black &lt;/pre&gt; &lt;p&gt;Si on souhaite afficher notre valeur en vérifiant tout d'abord qu'elle existe :&lt;/p&gt; &lt;pre lang="php"&gt; $value1 = get_post_meta($post-&gt;ID, 'nom_album', true); if($value){ echo $value1; // affichera Back to black } &lt;/pre&gt; &lt;h3&gt;Afficher toutesles valeurs liées à la clé&lt;/h3&gt; &lt;p&gt;Si on souhaite afficher un tableau pour récupérer toutes les valeurs:&lt;/p&gt; &lt;pre lang="php"&gt; $values = get_post_meta($post-&gt;ID, 'nom_album', false); echo '&lt;/p&gt; &lt;ul&gt;'; foreach ($values as $val){ &lt;/p&gt; &lt;li&gt;' . $val . '&lt;/li&gt; &lt;p&gt;'; } echo '&lt;/ul&gt; &lt;p&gt;'; // affichera Back to black , bah oui nous n'avons qu'une valeur &lt;/pre&gt; &lt;h3&gt;Affihage du résultat - directement&lt;/h3&gt; &lt;p&gt;Ici nous allons ajouter ce code dans la page directement mais peu importe que nous soyons dans la bouce ou non&lt;/p&gt; &lt;pre lang="php"&gt; $customField = get_post_custom_values("nom_album"); if (isset($customField[0])) { echo "Nom de l'album: ".$customField[0]; } &lt;/pre&gt; &lt;h3&gt;Affihage du résultat - via function.php&lt;/h3&gt; &lt;p&gt;Intégrez le code ci-dessous dans votre fichier function.php&lt;/p&gt; &lt;pre lang="php"&gt; function get_custom_field_value($Key, $echo = false) { global $post; $value = get_post_meta($post-&gt;ID, $Key, true); if ( $echo == false ) return $value; else echo $value; } &lt;/pre&gt; &lt;p&gt;Pour l'afficher dans votre page, intégrez le code ci dessous&lt;/p&gt; &lt;pre lang="php"&gt; if ( function_exists('get_custom_field_value') ) { echo 'Nom de l\'album: '; get_custom_field_value('nom_album', true); } &lt;/pre&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Cela nous donne ceci&lt;/p&gt; &lt;div class="mceTemp"&gt;&lt;dl id="attachment_1694" class="wp-caption aligncenter" style="width: 256px"&gt;&lt;dt class="wp-caption-dt"&gt;&lt;a href="http://www.blog.niums.com/wp-content/uploads/2013/07/amy-winehouse-front-end.png"&gt;&lt;img src="http://www.blog.niums.com/wp-content/uploads/2013/07/amy-winehouse-front-end-256x600.png" alt="amy-winehouse-front-end" width="256" height="600" class="size-medium wp-image-1694" target="_blank" ?-->amy-winehouse-front-end

Utiliser un wp_query avec un custom fields

Nous voulons afficher les post associer à un custom post.

Imaginons que nous souhaitions afficher tous les post pour une certaine année.

ACF

Pour finir , il est possible d’utiliser un plugin super bien fait ! ACF : http://www.advancedcustomfields.com/

Il fait (presque) tout le travail pour vous, il ne vous reste plus qu’à utiliser les méthodes fournies pour afficher le contenu.

Podcast 9 – Dancehall

Webdmix Dancehall

Hello, aujourd’hui je fais du reyclage. Un ami m’a fait remarquer que les podcasts n’étaient plus disponible et comme je n’en ai pas fait depuis un moment (… euphémisme) je ne m’en suis pas rendu compte.

Après avoir réuploader les zip , je me suis rendu compte que j’en avait fait 2 qui n’avaient pas été publié.

Je commence donc aujourd’hui par de la dancehall !!

Playlist

  • 1-niums-Intro Star warsienne
  • 2-niums-star wars riddim
  • 3-niums-Galore riddim
  • 4-niums-Chinkuzy Riddim
  • 5-niums-Smash Riddim
  • 6-niums-Military riddim
  • 7-niums-Blue steel riddim
  • 8-niums-Stepz Riddim
  • 9-niums-Gangsta Rock riddim
  • 10-niums-Siren riddim
  • 11-niums-Koppa riddim
  • 12-niums-Tunda Klap
  • 13-niums-Savage riddim
Webdmix Dancehall
Webdmix Dancehall

Télécharger le mix Dancehall

Enjoy

+++