Créer une base de connaissance avec WordPress

Intégrer une base de connaissance à un site WordPress est une chose facile à faire, comme vous allez pouvoir vous en rendre compte en parcourant ce tutoriel. En utilisant des taxonomies personnalisées pour les sections de la base de connaissance ainsi que les types d'articles personnalisés, c'est (presque) un jeu d'enfant.

Première étape : l'administration

Une base de connaissance est composée de deux parties : les sections (ou catégories) et les articles. Nous commençons par créer une taxonomie personnalisée pour gérer les sections et un type d'articles personnalisé pour les articles de la base de connaissance.

Pour cela, il suffit d'ajouter le code qui suit dans le fichier functions.php de votre thème :

Ce code sera exécuté après le chargement complet de WordPress mais avant qu'aucune entête ne soit envoyée. Il permet d'enregistrer le type d'article (register_post_type) et la taxonomie (register_taxonomy).

Les sections seront hiérarchiques mais pas les articles de la base de connaissance. Un article pouvant être attaché à plusieurs sections, voici le code qui permettra de visualiser les sections d'appartenance de l'article :

Base de connaissance avec WordPress - admin

Affichage des sections

A présent, ajoutez le code suivant dans le fichier functions.php :

Dans le dossier du thème, créez un fichier sidebar-sections.php et placez y le code suivant pour afficher les sections sur le front end du site.

De cette manière, les sections pourront être affichées n'importe où cela sera nécessaire en utilisant le code suivant :

Affichage des articles

Ajoutez les lignes suivantes dans le fichier functions.php :

Ce code est nécessaire car un article peut être relié à plusieurs catégories. Cela générera une structure hiérarchique du type : /knowledgebase/section-slug/sub-section-slug/another-sub-section-slug/article-slug

Créez maintenant dans le dossier de votre thème les fichiers suivants : archive-knowledgebase.php, single-knowledgebase.php, content-knowledgebase.php, taxonomy-section.php.

Dans le fichier archive-knowledgebase.php ajoutez le code :

Dans le fichier single-knowledgebase.php, collez les lignes suivantes :

Dans content-knowledgebase.php, ajoutez :

Enfin, dans le fichier taxonomy-section.php, placez le code qui suit :

Pour une démo vous pouvez consulter le site syneto.net