web-dev-qa-db-ja.com

訪問者にカテゴリページへのコメントの投稿を許可する

ユーザーがcategory.phpでカテゴリをコメントできるようにする方法を探していますが、見つけることができませんでした。単純な貼り付けではうまくいきませんでした(本当に期待していませんでした)。

明確にするために、私はユーザーがcategory.phpの投稿にコメントするのではなく、カテゴリ自体にコメントすることを探していません。出来ますか?

2
Anders Norén

簡単な答え:いいえ、WP方法について話しているのであれば、それはWPアーキテクチャーでは提供されていないので不可能です。

あなたがあなた自身のプラグインを作成するなら(またはテーマの一部としてそれを実装するなら)それはされるかもしれません。そのためには、カスタムテーブルを作成し、コメントを保存したりコメントを表示するためのロジックを実装する必要があります。

1
Eugene Manuilov

WordPressは投稿についてのコメントしか扱えないため、これはそのままでは不可能です。広い意味ではページ、カスタム投稿タイプなど.

カテゴリは投稿自体ではなく投稿のグループであるため、カテゴリにコメントを付けるための組み込み機能はありません。

カテゴリが比較的少ない場合は、カテゴリごとにページを作成できます。カテゴリメンバーを取得するためのカスタムループと、コメントフォームを含むカスタムページテンプレートを使用するようにします。

'category_link'フィルタ を使用して、標準のカテゴリリンクをこのページにリダイレクトできます。

1
djb

WordPressのデフォルトのコメントシステムでは不可能です

コメントフォームを印刷するには、category.phpテンプレートファイルの中に comments_template() という関数を配置する必要があります。

残念ながら、この関数は "単一の投稿やページにない場合、または投稿にコメントがない場合はコメントテンプレートを表示しません"

サードパーティのコメントシステム(例:Disqus)による解決策

他のコメントシステムを使用している場合、このシステムはWordPressの構造(ページ、投稿、カテゴリなど)を考慮に入れず、代わりにURLのみに依存している可能性が非常に高いです。コメント.

たとえば、ブログにDisqusがインストールされている場合は、次のようにcategory.phpファイルを作成できます。

<?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(); ?>

私は WordPressでカテゴリテンプレートを作成する方法 で提案されたものからテンプレートを作成しました。 WordPressに手動でDisqusをインストールする で提案されたスニペットを使ってコメントを追加しました。

コードは私自身のWebサイトでテストされ、それは機能します。

0
Marco Panichi

カスタムページを作成する
あなた自身のカスタマイズされた ループ
そのページのコメントを有効にします。

同じURLはありません。

これは、同じURLとオリジナルのカスタムテーブルなしのWPコメントシステムで行うことができますが、それははるかに困難です。
あなたがそれを求めているならば、私はそれを調べます。

0
janw