ゲストがノードのコメントを見ることができないように、ユーザー権限を変更するという明るいアイデアを思いつきました。私は自分のサイトのビューに問題はありません。ノードにコメントがあることを明確に確認でき、登録する傾向があるからです。問題は、彼らが私のサイトに直接ノードに到着したときのようで、コメントが表示されず、「それは少しくだらないです。行こう」と思います。
ノードの下にコメントの量を表示する方法はありますか?
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; ?>
コメントカウントを配置して保存する場所はどこでも構いません。 キャッシュをクリアして、変更を表示します。
node.tpl.php で$comment_count
を使用できます。
$type
:Nodeタイプ、つまり、ストーリー、ページ、ブログなど。$comment_count
:ノードに添付されたコメントの数。
Drupal 7の場合、template.phpに対するクエリは次のようになります。
$vars['num_comments'] = db_query("SELECT COUNT(cid) AS count FROM {comment} WHERE nid =:nid",array(":nid"=>$vars['nid']))->fetchField();
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 }}
キャッシュをクリアして、変更を確認します。
Drupal 8では、ノードテンプレートでこれを直接使用します。
{{ node.comment.comment_count }}
これが機能するためには、常にコメントという名前のノードにデフォルトのコメントフィールドが必要であることに注意してください。