Réalisation du blog

Démarrage

  • Installation de word press dans yunohost

  • Thème twentytwentyfive activé
    • préparer le thème enfant
drwxr-x--- 7 wordpress www-data 4096 Jul 14 09:24 twentytwentyfive
drwxr-xr-x 2 wordpress www-data 4096 Nov 20 16:30 twentytwentyfive-child
drwxr-x--- 7 wordpress www-data 4096 Apr 14  2025 twentytwentyfour
drwxr-x--- 7 wordpress www-data 4096 Apr 14  2025 twentytwentythree
  • Activer : Twenty Twenty-Five-enfant dans Apparence.Thèmes
  • Extensions pour commencer
    • Akismet Anti-spam: Spam Protection l
    • AuthLDAP
    • Code Snippets (en réglage par défaut)
    • Companion Auto Update
    • Elementor
    • Relevanssi
    • WP Fail2Ban Redux

Fait

  • articles avec catégorie et source (transferts et sources code initial puis remis ensuite à la bonne place -enfant- : puis saisis)
  • une page Accueil qui affiche le dernier article avec Elementor (modèle de page ou template).
  • une page blog pour l’affichage classique des articles.
  • une page blogs pour le code de sélection / filtres (catégorie, source, etc.).
  • un espace de discussion par page, façon “onglet Discussion” de DokuWiki / Wikipédia :
  • pas de sélection d’articles,
  • pas de filtrage,
  • juste un fil de commentaires/discussion dédié à chaque page,
  • et ça pour plusieurs pages (chaque page a sa propre discussion).
  • rester dans l’esprit “forum léger / thread” plutôt que les commentaires WordPress classiques, si je comprends bien.

Je vais te proposer une solution simple, 100% WordPress, compatible Elementor, sans plugin en plus.

Utiliser les commentaires natifs WordPress, mais :

  • les afficher où tu veux avec un shortcode (ou un widget Elementor),
  • éventuellement avec un titre “Discussion” et un look “forum / thread”,
  • et limiter l’accès (par exemple uniquement pour les utilisateurs connectés si tu veux).

Activer la “discussion par page” avec les commentaires
Pour chaque page où tu veux une discussion :

  • Dans l’édition de la page (Gutenberg ou classique) :
    • Clique sur “Options de l’écran” (ou réglages dans l’éditeur moderne).
    • Assure-toi que la case Commentaires est cochée.
    • En bas, tu verras le bloc Commentaires → coche “Autoriser les commentaires”.

Ça donne à la page sa zone de discussion dédiée (comme un thread par page).

Shortcode [page_discussion] pour afficher la discussion où tu veux
On crée un shortcode qui :

  • affiche le titre “Discussion”,
  • affiche la liste des commentaires pour la page en cours,

affiche le formulaire pour poster un nouveau message.

À mettre dans ton fichier de fonctions de thème (ou plugin perso) :

code discussion

Comment l’utiliser
Sur n’importe quelle page où tu veux une discussion :

  • Autoriser les commentaires sur cette page
  • Dans Elementor : Ajoute un widget “Code court / Shortcode”. ou même simplement coller Mets : [page_discussion]

Personnalisation “forum”
Tu pourras ensuite :

  • Ajouter du CSS pour donner un look plus “forum” :
    • indentation des réponses,
    • bordures, fonds, etc.
  • Limiter à des utilisateurs connectés si tu veux :
    • soit dans les Réglages > Discussion globaux,<soit en modifiant le shortcode pour afficher un message “Connectez-vous pour participer”.

Par exemple, pour forcer l’accès réservé aux connectés dans le shortcode :

if ( ! is_user_logged_in() ) {
    return '<p>Vous devez être connecté pour participer à la discussion.</p>';
}

à placer juste après le is_singular().
à placer ju

Rendre la discussion réservée aux connectés

  • Si quelqu’un n’est pas connecté → il voit “Connectez-vous pour participer à la discussion”.
  • S’il est connecté (visiteur, animateur, administrator) → il voit le formulaire.

Si tu veux déjà te rapprocher de ton futur fonctionnement “site réservé”, on peut ajuster le shortcode comme ça :

Dans functions.php du thème enfant, remplace la fonction dp_page_discussion_shortcode() par ceci :

code accès

Effet :

  • Pour toi (connecté en admin) → tout reste comme tu vois déjà.
  • Pour un visiteur non connecté → plus de formulaire, mais un lien vers la page de connexion.

Vérifier côté Relevanssi

Dans l’admin WordPress :

  Réglages → Relevanssi :
      Assure-toi que le type de contenu post est bien coché.
  Clique sur “Construire l’index” ou “Reconstruire l’index” si ce n’est pas déjà fait.

4. Résumé de ce que tu dois faire

  Ne touche pas au reste de functions.php (enfant).
  Dans journal_shortcode_blog_filtrable_relevanssi() :
      Ajoute :

if ( function_exists( 'relevanssi_do_query' ) && ! empty( $search_term ) ) {

  relevanssi_do_query( $query );

}

juste après :

$query = new WP_Query($args);

Sur ta page Blogs où tu as mis :

  [blog_filtrable_relevanssi]
      teste :
          une recherche texte seule,
          un filtre catégories/sources sans texte,
          les deux combinés.

Si tu veux, au prochain message tu me décris ce que tu vois (ex.: “je tape X, j’obtiens Y”), et on ajuste les détails (ordre des résultats, affichage des termes, pagination, etc.).

Je vais rendre ton shortcode paramétrable sans casser ce qui marche déjà.
Objectif

Avoir un shortcode du style :

[blog_filtrable_relevanssi]

(comme aujourd’hui, pour les articles du blog)

et aussi, si tu veux plus tard :

[blog_filtrable_relevanssi post_type=“journal2” taxonomies=“category,sources” per_page=“5”]

1️⃣ Version améliorée du shortcode : avec paramètres

👉 Remplace uniquement la fonction journal_shortcode_blog_filtrable_relevanssi() par celle-ci (le reste de ton fichier ne bouge pas : taxonomie Sources, shortcodes derniers articles, etc.).
code-paramRéalisation du blog

2️⃣ Comment l’utiliser maintenant
Cas 1 – comme aujourd’hui (blog)

Tu ne changes rien, tu gardes :



Cas 2 – autre type de contenu (ex. journal2)

Le jour où tu auras un CPT journal2, tu pourras mettre dans une page :

[blog_filtrable_relevanssi post_type="journal2" taxonomies="journal2_sujet,sources" per_page="5"]

[blog_filtrable_relevanssi post_type=“journal2” taxonomies=“journal2_sujet,sources” per_page=“5”]

  • bricoler/prive/blog/realisation-blog
  • Dernière modification : 2025/11/29 19:59
  • de dpt