web-dev-qa-db-ja.com

表示方法Node node.tplのコメント数?

ゲストがノードのコメントを見ることができないように、ユーザー権限を変更するという明るいアイデアを思いつきました。私は自分のサイトのビューに問題はありません。ノードにコメントがあることを明確に確認でき、登録する傾向があるからです。問題は、彼らが私のサイトに直接ノードに到着したときのようで、コメントが表示されず、「それは少しくだらないです。行こう」と思います。

ノードの下にコメントの量を表示する方法はありますか?

15
Reg Gordon

template_preprocess_node() を使用することをお勧めします。
これはD8の基本的な例です

function YOUR_THEME_preprocess_node(&$variables) {
  $variables['comment_count'] = $variables['node']->get('YOUR_COMMENT_FIELD')->comment_count;
}

そして、あなたはそれをnode.html.twigファイルは次のようになります。

{{ comment_count }}

D6の基本的な例を以下に示します。お好みに合わせてカスタマイズできます。テーマディレクトリにあるtemplate.phpファイルで、次の行に沿って何かを追加します(YOURTHEMEをテーマの名前に置き換えます)。

function YOURTHEME_preprocess_node(&$variables) {
  $nid = $variables['node']->nid;
  $variables['num_comments'] = db_result(db_query('SELECT COUNT(cid) AS count FROM {comments} WHERE nid = %d', $nid)) . ' comment(s) on this node';
}

ファイルを保存します。ここでnode.tpl.php(または同等のテンプレート、node-mycontenttype.tpl.phpなど)に次のコードを追加します。

<?php print $num_comments; ?>

コメントカウントを配置して保存する場所はどこでも構いません。 キャッシュをクリアして、変更を表示します。

10
Laxman13

node.tpl.php$comment_countを使用できます。

$type:Nodeタイプ、つまり、ストーリー、ページ、ブログなど。
$comment_count:ノードに添付されたコメントの数。

12
graceman9

Drupal 7の場合、template.phpに対するクエリは次のようになります。

$vars['num_comments'] = db_query("SELECT COUNT(cid) AS count FROM {comment} WHERE nid =:nid",array(":nid"=>$vars['nid']))->fetchField();
4
doterobcn

Drupal 8の場合:

function YOURTHEME_preprocess_node(&$variables) {
  $nid = $variables['node']->nid->value;
  $num_comment = db_query('SELECT comment_count FROM {comment_entity_statistics} WHERE entity_id = ' . $nid)->fetchAssoc();
  $variables['comment_count'] = $num_comment['comment_count'];
}

今page.html.twigに:

{{ comment_count }}

キャッシュをクリアして、変更を確認します。

0
rpayanm

Drupal 8では、ノードテンプレートでこれを直接使用します。

{{ node.comment.comment_count }}

これが機能するためには、常にコメントという名前のノードにデフォルトのコメントフィールドが必要であることに注意してください。

0
ipwa