特定のノードに属するコメントを印刷する必要があります。したがって、基本的には、ノードIDを取得してから、特定のノードからすべてのコメントを選択して出力します。次のコードを使用して、1つのコメント(たとえば、id = 12)を印刷できることを知っています。
<?php
$comment = _comment_load(12);
return theme('comment',$comment);
?>
誰でもこれを行う方法を教えてもらえますか?
すぐに使える関数を探しているなら、 comment_render() を見てください。
使用例(コメントが必要なノードにnid = 5があるとします):
<?php
$node = node_load(5);
print comment_render($node);
?>
または、データベース(コメントテーブル)を手動でクエリして、一致するnidを持つすべてのコメントを取得することもできます。
<?php
$nid = 5;
db_query('SELECT * FROM {comments} WHERE nid = %d', $nid);
?>
完全なコメントオブジェクトをロードする場合は、次のように使用できます。
$result = db_select('comment')
->fields('comment', array('cid'))
->condition('nid', $node->nid, '=')
->execute();
$cids = $result->fetchCol();
$comments=comment_load_multiple($cids);
foreach($comments as $comment) {
//do some stuff with the comment
print $comment->comment_body ["und"][0] ["value"];
}
Drupal 7以降comment_render
は削除されました。代わりに、このようなコメントを読み込むことができます。
$result = db_select('comment')
->fields('comment', array('name','subject'))
->condition('nid', $node->nid, '=')
->execute()
->fetchAssoc();
foreach($result as $comment) {
print $comment;
}