web-dev-qa-db-fra.com

Permettre aux visiteurs de poster des commentaires sur la page de catégorie

Je cherche un moyen de laisser les utilisateurs commenter les catégories sur category.php, mais je n'ai pas réussi à en trouver. Le simple collage ne fait pas l'affaire (je ne m'y attendais pas vraiment).

Pour plus de clarté, je ne cherche pas les utilisateurs à commenter les publications dans category.php, mais plutôt à commenter la catégorie elle-même. C'est possible?

2
Anders Norén

Réponse courte: Non, il est impossible, si nous parlons de la manière WP, car elle n’a pas été fournie par l’architecture WP.

Cela pourrait être fait si vous créez votre propre plugin (ou l'implémentez en tant que thème). Pour ce faire, vous devez créer un tableau personnalisé et implémenter une logique permettant de sauvegarder et d'afficher des commentaires.

1
Eugene Manuilov

Ce n’est pas possible immédiatement car WordPress ne peut gérer que les commentaires sur messages , au sens large, qui comprend des pages, des types de messages personnalisés, etc.

Puisqu'une catégorie est un groupe de publications plutôt qu'une publication en soi, aucune fonctionnalité intégrée ne permet de joindre des commentaires à une catégorie.

Si vous avez relativement peu de catégories, vous pouvez créer une page pour chaque catégorie. Demandez-leur d'utiliser un modèle de page personnalisé comprenant une boucle personnalisée pour obtenir les membres de la catégorie et comprenant un formulaire de commentaires.

Vous pouvez rediriger les liens de catégories standard vers cette page à l’aide du filtre 'category_link' .

1
djb

Ce n'est pas possible avec le système de commentaires par défaut de WordPress

Pour imprimer le formulaire de commentaire, vous devez placer la fonction comments_template () dans votre fichier de modèle category.php.

Malheureusement, cette fonction "n’affiche pas le modèle de commentaires si elle ne figure pas dans un article ou une page, ou si l’article ne contient pas de commentaires" .

Solution avec un système de commentaires tiers (par exemple, Disqus)

Si vous utilisez un autre système de commentaires, il est très probable que ce système ne prend pas en compte la structure WordPress (pages, publications, catégories, etc.), mais repose uniquement sur des URL: chaque URL de site peut avoir commentaires.

Par exemple, si Disqus est installé sur votre blog, vous pouvez créer un fichier category.php comme celui-ci:

<?php get_header(); ?>

<div id="content">

    <?php if ( have_posts() ) : ?>

        <header class="archive-header">
            <h1 class="archive-title">Category: <?php single_cat_title( '', false ); ?></h1>        
            <?php if ( category_description() ) : ?>
                <div class="archive-meta"><?php echo category_description(); ?></div>
            <?php endif; ?>
        </header>

        <?php while ( have_posts() ) : the_post(); ?>       
            <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
            <small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small>
            <div class="entry">
                <?php the_content(); ?>
            </div>
        <?php endwhile;

    else: ?>

        <p>Sorry, no posts matched your criteria.</p>

    <?php endif; ?>

    <h2>Comments</h2>

    <div id="disqus_thread"></div>
    <script>
        /**
         *  RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
         *  LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables
         */
        /*
        var disqus_config = function () {
            this.page.url = PAGE_URL;  // Replace PAGE_URL with your page's canonical URL variable
            this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
        };
        */
        (function() {  // DON'T EDIT BELOW THIS LINE
            var d = document, s = d.createElement('script');

            s.src = '//EXAMPLE.disqus.com/embed.js';

            s.setAttribute('data-timestamp', +new Date());
            (d.head || d.body).appendChild(s);
        })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>

</div>

<?php get_footer(); ?>

J'ai créé le modèle à partir de celui suggéré dans Comment créer des modèles de catégorie dans WordPress ; J'ai ajouté les commentaires en utilisant l'extrait suggéré dans . Installez manuellement Disqus sur WordPress .

Le code est testé sur mon propre site Web et cela fonctionne.

0
Marco Panichi

Créer une page personnalisée
Avec votre propre boucle personnalisée
Activer les commentaires sur cette page.

Il n'aura pas la même URL.

Cela peut être fait avec la même URL et le système original - sans tables personnalisées - wp-comment mais c'est beaucoup plus difficile.
Si vous voulez que demander et je vais examiner.

0
janw