WordPress : Utiliser plusieurs ID dans un seul champ personnalisé

Niveau débutantCette semaine ma problématique sur WordPress a été de lier plusieurs articles à un seul, sans passer par les catégories ou les mots clés, à l’image des articles relatifs que l’on peut souvent voir en bas de page.

Pour y arriver, j’ai choisi d’utiliser un champ personnalisé dans lequel j’ai saisi les ID des articles que je souhaitai liés.

wordpress_champ-personnalise_02Vous trouverez les champs personnalisés juste en dessous de l’interface de saisie des articles.

Le champ personnalisé (cliquez sur « Saisissez en un nouveau ») est nommé id_autres_articles dans le champ « Nom », puis on saisi dans le champ « Valeur » l’ID des articles à afficher :
[code type= »codetype »]11 54 65 2254[/code] Aucun séparateur n’est utilisé, juste des espaces.

Ensuite, dans le fichier single.php (se trouvant à la racine de votre thème) vous saisissez tout le bazar… explications :

On récupère grâce à la fonction get_post_meta, l’ID de l’article dans lequel on se trouve actuellement ainsi que les valeurs se trouvant dans le champ personnalisé id_autres_articles et on stock tout dans une variable $liste_articles.
[code type= »codetype »] $liste_articles = get_post_meta($post->ID, ‘id_autres_articles’, false);
[/code]

On teste ensuite la présence d’éléments dans le champ personnalisé avant de poursuivre
[code type= »codetype »] if($liste_articles[0] !=  »){
[/code]

On récupère la liste d’ID grâce à la fonction PHP explode, que l’on stock dans un tableau nommé $table_articles
[code type= »codetype »] $table_articles = explode(‘ ‘,$liste_articles[0]);
[/code]

A partir de là, on décompose la liste des ID et on fait autant de boucles qu’il y a d’ID (avec la fonction foreach) pour récupérer les informations de chaque article trouvé : le lien (get_permalink), le titre (get_the_title) et l’image à la une (get_the_post_thumbnail).
[code type= »codetype »] foreach($table_articles as $un_article){
$lien_article = get_permalink ($id);
$titre_article = get_the_title($id);
$image_article = get_the_post_thumbnail($id, ‘medium’);
[/code]

Plus qu’à formater le résultat pour l’afficher… c’est du CSS et c’est pas pour aujourd’hui 🙂
[code type= »codetype »]

  • « >

  • [/code]

    Ci dessous le code dans son ensemble à copier/coller dans votre page :
    ATTENTION : n’oubliez pas de faire des sauvegardes de vos fichiers avant toutes modifications
    [code type= »codetype »] ID, ‘id_autres_articles’, false);
    if($liste_articles[0] !=  »){
    ?>


    [/code]

    À propos de l’administrateur

    Gilles Publié le

    Ma passion du visuel et de la créativité m' a permis de faire du dessin, de la menuiserie, du motion design, de la photo, de la programmation, de l'image de synthèse, de l'écriture, de la retouche photo, du graphisme numérique et même du tricot.

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *