Here With Me

Le blog technique d'Amaury Balmer qui parle de technologies open-source, mais surtout de WordPress !

Relation Post Types : Faire des relations entre les contenus de WordPress !

| 19 Commentaires

Depuis 3.0, il est possible de créer facilement à la volée des types de contenus (en anglais : ), et d’y coupler des . On peut par exemple, créer des petites annonces, et ajouter des comme la région, un ordre de prix, l’état du bien, etc.

Mais les taxonomies ne sont pas nécessairement suffisantes dans un usage pro pour monter un site avec de nombreuses . Parfois, on souhaite relier 2 types de contenu ensemble, par exemple sur un site contenant des petites annonces, on voudra avoir la possibilité de lier des articles d’actualités à des petites annonces. Ainsi, on pourra facilement afficher des blocs de contenus liés sur le thème.

Pour y parvenir, j’ai développé le plugin : Relation Post Types

Relation - Réglages

Ce dernier offre la possibilité de choisir dans la console d’administration quelles liaisons voulez vous mettre en place. Par exemple, si vous avez des petites annonces et des articles à relier, vous pouvez choisir d’afficher un bloc « articles » sur la page d’édition des petites annonces, et inversement vous pouvez afficher le bloc « petites annonces » sur la page d’édition des articles. Ainsi, vous pouvez créer des relations dans les 2 sens.

Boite de sélection dans la page de rédaction

On peut même pousser le bouchon le plus loin et créer des relations entre contenus d’un même type de données, par exemple relier une petite annonce à d’autres petites annonces. Cela peut être utile pour générer du contenu relatif, mais manuellement.

Le plugin est disponible en téléchargement sur WP.org, dans le référentiel de . Le plugin est réservé à un public de développeur ou d’utilisateurs avertis, il n’existe pas de fonctions prêtes à l’emploi à utiliser dans le thème, il vous faudra coupler les fonctions du plugin et WP_Query.

N’hésitez pas à me contacter pour tout bug ou évolution allant dans le sens du plugin.

19 Commentaires

  1. Très intéressant, les types personnalisées de WordPress 3 sont vraiment une avancé extrêmement utiles.

    Merci pour la contribution.

  2. Merci pour ce plugin. Je pense à certains sites web pour lesquels j’ai pondu un gros fichier functions.php afin d’arriver à cela… Mais c’était avant WordPress 3.0 et les Custom Type. Trop de travail.Tout cela, WP 3. et ton plugin vont rendre les sites moins longs et moins tordus à fabriquer.

  3. Content que ça puisse servir !

  4. Ce plugin m’intéresse au plus au point. Petite question : est-il compatible avec WP 3.0 multi-site ?

    Je souhaiterais relier des articles de différents sites par exemple ?

    Merci !

  5. Aurélien > le plugin est compatible avec WP 3.0 multi site. Mais ce que tu décris c’est une autre fonctionnalité.

    La possibilité de mettre des relations entre le contenu de différents sites, non je ne le propose pas, et ça n’est pas d’actualité !

  6. D’accord ! Merci de ta réponse.

    Et tu ne connaîtrais pas par hasard un moyen de faire ce genre de trucs ? :)

  7. Il me semble que c’est l’affaire de thèmes spécialisés, en particulier P2, de chez automattic.

  8. je devais etre en avance sur mon temps quand j’ai commandé ca … mais bon.

  9. J’ai une erreur au moment de l’activation :
    Fatal error: Class ‘Walker_Relations_Menu’ not found in /Applications/MAMP/htdocs/wp/wp-content/plugins/relation-post-types/inc/class.walker.php on line 7

    Que puis-je faire ?

    (je suis en WP 3.0)

  10. Bonsoir Amaury,

    merci pour ce plugin, pile ce qu’il me faut. J’aime tellement que je n’en démords pas.
    Cependant je ne vois pas comment on affiche le résultat en front-end.
    Possible de nous poster un petit exemple svp.

    merci.

  11. Bonjour,

    je viens de regarder et en fait en cherchant dans le code j’ai trouvé mon bonheur.
    Merci encore pour ce plugin…

    Je met ci-dessous la solution, ça peut servir :)

    il n’existe pas de fonctions prêtes à l’emploi à utiliser dans le thème, il vous faudra coupler les fonctions du plugin et WP_Query

    Les fonctions en questions se trouvent dans le fichier « function.inc.php » du répertoire du plugin (je ne sais pas si c’est une convention).

    Et du coup pour récupérer les ID en relation c’est :
    $id = rpt_get_object_relation( $post->ID );

  12. J’ai une erreur au moment de l’activation :
    Fatal error: Class ‘Walker_Relations_Menu’ not found in /Applications/MAMP/htdocs/wp/wp-content/plugins/relation-post-types/inc/class.walker.php on line 7

    J’ai eu une erreur similaire au moment de mettre en prod (ligne 48 dans le même fichier pour ma part). Je suis tomber sur un post de l’auteur qui a résolu le problème.

    Si ça peut servir à quelque-un : Optimiser les performances de PHP et WordPress chez OVH en 4 lignes !

  13. Bonjour,
    j’ai essayé d’activer le plugin à plusieurs reprises, et j’ai toujours le même message d’erreur : Fatal error: Class ‘Walker_Relations_Menu’ not found in /httpdocs/wp-content/plugins/relation-post-types/inc/class.walker.php on line 7.

    J’ai même tenter la manip OVH, mais ça n’a rien changé.

    Une idée de comment faire pour régler ce problème ?

    Merci,

    a+

  14. Le plugin nécéssite PHP5 et WordPress 3.0 mini.
    Es-ce bien le cas?

  15. Oui je suis sous WP 3.2.1 et avec PHP Version 5.2.9
    Impossible pourtant d’activer le plugin, j’ai toujours le même message d’erreur…

  16. Chez moi ça a l’air de marcher nickel et c’est exactement ce sur quoi je bloquais depuis un petit moment ! un grand bravo à toi, vraiment !

  17. Est-il possible d’afficher aussi les articles en brouillon, car là ça ne met que les articles hors ligne.

  18. Merci pour ce plug-in tu viens de m'épargner pas mal d'heure de dev.

  19. Salut Amaury,

    j’ai longtemps utilisé ton plugin pour créer des relations entre content types (tu en faisait la pub lors des cours de WP dispensés à HETIC :).

    Je ne sais pas si le dév est avorté pour le suivi de ce plugin, mais tu as une incompatibilité levant des notices coté WP :

    Declaration of Walker_Relations_Menu::start_lvl() should be compatible with Walker::start_lvl(&$output, $depth = 0, $args = Array) in /wp-content/plugins/relation-post-types/inc/class.walker.php:76

Répondre à Alain Annuler la réponse.

Champs Requis *.