====== Réalisation du blog ====== ====== Démarrage ====== * Installation de word press dans yunohost {{ :bricoler:prive:2025-11-20_17-49.jpg?direct&200 |}} * 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 ===== redémarrage ===== 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.). ==== Récup des investigations précédentes avec chatgpt (pour le code) et/ou Mistral ==== [[bricoler:prive:blog:realisation-blog:code-recup|Code]] ==== Page de discussion ==== * * 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) : [[bricoler:prive:blog:realisation-blog:discussion|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, if ( ! is_user_logged_in() ) { return '

Vous devez être connecté pour participer à la discussion.

'; } à placer juste après le is_singular(). à placer ju ==== Discussion réservée aux connectés ==== 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 : [[bricoler:prive:blog:realisation-blog:code-decurite|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. ===== sécurité et accès ===== * Réglages * Général : titre, icône, email (daniel.pascot@mailbox.org) ===== nettoyage ===== 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.). ===== Titre ===== 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.). [[bricoler:prive:blog:realisation-blog:code-param|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"]