Créer une page de liens externes

A la demande d’un internaute, voici un tutoriel facile permettant la création d’une page pour accueillir tous vos liens crées depuis l’administration de WordPress. Depuis les dernières versions de WordPress, il est possible de classer ses liens par catégories (ex: Ressources, Partenaires, Sites Amis, ect…)

Création d’un modèle de page.

Première étape de ce tutoriel, créer un modèle de page pour afficher les liens :

  • Dupliquer le fichier page.php de votre template et renommer ce nouveau fichier par exemple : page-liens.php.
  • Editer page-liens.php avec un éditeur de texte et ajouter cette ligne de code :
[xml] /** Template Name: Page de liens */ [/xml]

Pour mieux comprendre voici le début de mon fichier page-liens.php :

[xml] <?php /** Template Name: Page de liens */ get_header(); ?> <div id= »container »> [/xml]
  • Uploader ce nouveau fichier via ftp dans le répertoire de votre template.
  • Depuis votre administration WordPress, créer une nouvelle page « liens ».
  • Changer le modèle de page « Modèle par défault » par « Page de liens » depuis la liste déroulante :

  • Voila votre modèle de page relié à votre page Liens, maintenant il reste simplement à appeler la fonction d’affichage des liens de WordPress.

Fonction pour afficher les liens

  • Éditer votre fichier page-liens.php avec un éditeur texte, repérer la ligne :
[php] <?php the_content(); ?> [/php]
  • Rajouter en dessous cette ligne:
[php] <?php wp_list_bookmarks(); ?> [/php]
  • Ce qui donne:
[php] <?php the_content(); ?> <?php wp_list_bookmarks(); ?> [/php]

Et voila, réuploader votre fichier sur votre hébergeur.

Aller plus loin

Voici le lien du codex de la fonction wp_list_bookmarks  http://codex.wordpress.org/Template_Tags/wp_list_bookmarks

Récupérer toutes les informations des liens

La fonction wp_list_bookmarks est très limité, pour afficher plus d’informations, il faut utiliser la fonction get_bookmarks à la place: http://codex.wordpress.org/Function_Reference/get_bookmarks Exemple afficher en plus les flux rss de chaque lien :

[php] <?php $bookmarks = get_bookmarks( array( ‘orderby’        => ‘name’, ‘order’          => ‘ASC’ )); // Loop through each bookmark and print formatted output //var_dump($bookmarks); foreach ( $bookmarks as $bm ) { echo ‘<a href= »‘.$bm->link_url.’ »‘; echo $bm->link_target == ‘_blank’ ? ‘ target= »_blank »‘ :  »; echo ‘>’.$bm->link_name.’</a>’; if($bm->link_rss) echo ‘&nbsp;<a href= »‘.$bm->link_rss.’ »>[Flux Rss]</a>’;  //si le flux rss est renseigné echo ‘<br/>’; } ?> [/php]

Laisser un commentaire

6 Commentaires

  1. il est possible de rajouter le flux rss de chaque lien externe?
    merci

    1. Bonjour,

      Oui c’est possible mais pas avec la fonction wp_list_bookmarks().

      Solution à la fin de cet article.

  2. Salut.
    J’ai utilisé ce code et il ne me prenait pas en compte l’attribut « cible » que je choisissais dans l’admin.
    J’ai du remplacer

    echo ''.$bm->link_name.'';

    par

    echo ' echo $bm->link_target == '_blank' ? ' target="_blank"' : '';
    echo '>'.$bm->link_name.'';

    Je suis avec WP 3.2.1
    Du coup je ne sais pas si l’attribut « cible » existait au moment où tu as écris cet article.
    a+

  3. ah mince mon commentaire précédent n’est pas bien passé car les balises ont été interprétées alors que j’aurais voulu afficher du code.

    1. Salut Gilles

      Oui il faut rajouter la balise CODE mais ce n’est pas suffisant car la balise A est interprété par wordpress.

      J’ai rajouté ton astuce dans l’exemple en fin d’article. A+

  4. Bonjour,
    merci pour votre code. Je cherchais desespérement une alternative à wp_list_bookmarks.

    Cependant, je ne sais pas comment je peux récupérer la catégorie auquel chaque lien appartient. « link_category » semble être devenu un mythe. Dans le tableau que vous proposez, il n’y a pas de catégorie de liens. :-/

    Mon objectif est d’afficher les liens pas catégories :
    CATEGORIE A
    lien 1A
    lien 2A

    CATEGORIE B
    lien 1B
    lien 2B

    Vous avez une piste ? taxonomy ???
    Merci