Utiliser les postmeta

Utiliser la table wp_postmeta

Lors de l’installation de votre wordpress , l’outil créait une base qui se nome wp_postmeta .
L’intérêt principal de cette fonctionnalité est la liaison entre un ID de l’annonce ( index de l’annonce ) , un mot et une valeur.

On peut donc l’utiliser de différente façon .

  • -1- Extraire une liste de billets marqués ( par la valeur )
  • -2- Extraire des paramètres supplémentaire pour ce billet ( par son ID )

Méthode manuelle

L’édition de cette valeur peu se faire depuis l’interface utilisateur :

postmeta , custom fields

Methode en PHP

Nous vous proposons trois fonctions, très pratique, vous permettant de définir ou de relever le contenu de ces champs depuis vos pages .

Ces trois fonctions sont utilisables depuis les pages de votre site ou depuis des Plugin.
Ces deux exemples de code PHP sont membre de la suite de fonctions de notre sur couche
Wordpress-seo depuis la version 1.0.

La table wp_postmeta

meta_id bigint(20) NO PRI NULL auto_increment
post_id bigint(20) NO MUL 0  
meta_key varchar(255) YES MUL NULL  
meta_value longtext YES   NULL  

Si vous êtes da la « Loop » vous pouvez utiliser l’API :
$lu = get_post_meta($post_id, 'valeur', true); ( attention si votre version < 1.5 )

add_post_meta( $post_id, $cle, $valeur);

exemple : $key="mykey"; echo get_post_meta($post->ID, $key, true);

La suite : (en anglais ) : http://codex.wordpress.org/Using_Custom_Fields

Extrait de la suite logiciel Wordpress SEO

Si vous l'utilisez Hors de la Loop :

  1. // -------------------------------------------------------
  2. // Extraire une valeur issus de wp_postmeta par
  3. // L'id de l'annonce et le valeur de la chaine
  4. // -------------------------------------------------------
  5. function GetPostMeta_FromKeyAndPostId($TagKey,$Id,$Max=1)
  6. {
  7.   // Les global issues de wordpress
  8.   global $wpdb,$table_prefix;
  9.   //
  10.  
  11.   // On force le debug
  12.   $Print_debug=0;
  13.    
  14.   $ArrMsgAll=array();
  15.   $ArrMsgCount=0;
  16.   // ----------------------------------
  17.   // On isole la liste
  18.   $SQL="SELECT meta_id,meta_value FROM `".$table_prefix."postmeta`
    where meta_key='"
    .$TagKey."' AND post_id='".$Id."' limit ".$Max." " ;
  19.  
  20.  
  21.   $search_counter = 0;
  22.   $A_meta = $wpdb->get_results($SQL);
  23.   if($A_meta)
  24.   {
  25.     return $A_meta[0]->meta_value;
  26.   }
  27.   else
  28.   {
  29.     if($Print_debug==1){echo "<br>DEBUG : <br><p>No results.</p><br>";}  
  30.   }
  31.   return ""; // vide !
  32. }
  33.  
  34. // -------------------------------------------------------
  35. // definit un champ
  36. // -------------------------------------------------------
  37. function SetUserMeta($TagKey="error",$NewVal,$Id=0)
  38. {
  39.   // Les global issues de wordpress
  40.   global $wpdb,$table_prefix;
  41.   //
  42.   // On force le debug
  43.   $Print_debug=0;
  44.  
  45.   $SQL="INSERT INTO `".$table_prefix."postmeta` set meta_key='".$TagKey."',
    meta_value='"
    .addslashes($NewVal)."' , post_id='".$Id."' " ;
  46.   if($Print_debug==1){echo "<br>DEBUG : <br>$SQL<br>";}
  47.  
  48.   $wpdb->get_results($SQL);
  49. }
  50. // -------------------------------------------------------
  51. // Charge une liste d'annonce taggé par une clé
  52. // -------------------------------------------------------
  53. function GetPostListFromWPTag( $TagKey="xxx", $Max=5 ,$Print_debug=0)      
  54. {
  55.   // Les global issues de wordpress
  56.   global $wpdb,$table_prefix;
  57.   //
  58.  
  59.   // On force le debug
  60.   $Print_debug=0;
  61.  
  62.   $ArrMsgAll=array();
  63.   $ArrMsgCount=0;
  64.   // ----------------------------------
  65.   // On isole la liste
  66.   $SQL="SELECT post_id FROM `".$table_prefix."postmeta`
    where meta_key='"
    .$TagKey."' limit ".$Max." " ;
  67.  
  68.   if($Print_debug==1){echo "<br>DEBUG : <br>$SQL<br>";}
  69.  
  70.   $search_counter = 0;
  71.   $A_meta = $wpdb->get_results($SQL);
  72.   if($A_meta)
  73.   {
  74.     foreach($A_meta as $smeta)
  75.     {
  76.       $SQL="SELECT * FROM `".$table_prefix."posts` where ID=".$smeta->post_id." ";
  77.  
  78.       if($Print_debug==1){echo "<br>DEBUG : <br>$SQL<br>";}
  79.  
  80.       $searches = $wpdb->get_results($SQL);
  81.       foreach($searches as $search)
  82.       {
  83.         $ArrMsgAll[]=$search;
  84.         $ArrMsgCount++;
  85.       } //end of foreach loop    
  86.     } //end of foreach loop
  87.   }
  88.   else
  89.   {
  90.     if($Print_debug==1){echo "<br>DEBUG : <br><p>No results.</p><br>";}  
  91.   }
  92.   return $ArrMsgAll;
  93. }



Si vous utilisez ce code sur votre site ou si cette page vous fournies les informations que vous désiriez, aidez nous à nous faire connaître .
La meilleur solution serait de placer notre logo sur votre site.
Le savoir n'est utile que s'il est partagé.
Notre logo que vous pouvez ajouter sur votre site.

Tags:

Leave Your Comment

Comment Form


Nouveauté

Wordpress To Bookmark : Un site de bookmark sur une base de wordpress. Nous testons à l'heure actuelle notre petit dernier un Wordpress optimisé
Comment rédiger des communiqués de presse efficace ? Comment proposer un contenu intéressant sous forme de communiquer de presse. Depuis que
Le plugin TagToLink © qui remplace les tag par des liens. Développé par notre spécialiste du marketing internet la plugin TagToLink est disponible
WordPress est un système entièrement gratuit de gestion de contenu. (*C*ontent *M*anagement *S*ystems) Couplé à *Google analytics* lui aussi gratuit

Techniques

Les sources officielles de WordPress vous permettent de limiter les risques de contrefaçon ou de télécharger une version modifié afin de vous nuire.
Wordpress-SEO : Wordpress étendu et sécurisé pour les professionnels Wordpress à su s'imposé comme un des outils incontournable pour les bloggeur
Comment ré-initialiser le mot de passe admin pour WordPress quand on ne possède plus l'email de l'administrateur ? Comment ré-initialiser le mot
Vous voulez déplacer votre wordpress vers un nouveau domaine. Comment transférer votre wordpress facilement. -1- Méthode Complète -2- Méthode
Techniques Wordpress
plugin et patch Wordpress
Formation Wordpress
Utilisateurs Wordpress-SEO
Wordpress-SEO : Wordpress professionel