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]

    Commentaires

    Laisser un commentaire

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