comments.phpの編集
各ページに飛んだ時やコメントリンクをクリックした時に出現するコメントフォームを出力するには、
<?php comments_template();?>
タグを使用します。ループタグの外(<?php endwhile;endif;?>)の下に記述しましょう。
実を言うと、このタグはcomments.phpのデータをとりに行っているだけなので、
外観→テーマ編集で、comments.phpを編集しなければなりません。comments.phpに、
<?php comments_form();?>
と記述するとコメント投稿フォームを出力させることができます。
また、コメントが投稿された場合、投稿されたコメントを羅列して出力するタグとして、
<?php wp_list_comments();?>
タグがあります。このタグはliでマークされて表示されるので、ulでくくってあげます。
これらを上手く使って、index.phpのbody内とcomments.phpを編集すると、
(index.phpのbody内の記述) <?php if(have_posts()):while(have_posts()):the_post();?> <div class="a5"> <h2><a href="<?php the_permaLink();?>"><?php the_title();?></a></h2> <div class="a6"><?php the_content();?></div> <p class="b1"><?php echo get_the_date();?><?php the_time();?> | カテゴリー: <?php the_category(',');?> | <a href="<?php comments_link();?>">コメント<?php comments_number('(0)','(1)','(%)');?></a></p> </div> <?php endwhile;endif;?> <?php comments_form();?>
(comments.phpの記述) <div> <?php if(have_comments()):?> <p>コメント</p> <ul> <?php wp_list_comments();?> </ul> <?php endif;?> </div>
の様になります。<?php if(have_comments()):?><?php endif;?>タグはコメントが有るならばという条件分岐のタグです。
受信コメント欄のカスタマイズはちょっとやっかいです。既存の投稿者・投稿日・文章の順番を入れ替えるためには、comments.hpとfunction.phpの編集が必要です。
上記の、投稿されたコメントを羅列して出力するwp_list_commentsタグにパラメータを指定します。「callback=好きなID(例えば、comcomなど)」とすることで、wp_list_commentsタグがコメントを出力する際に、function.phpのcomcomに対応する部分が読み込まれて表示順序が変更されます。
function.phpに記述する順序を変更する記述が以下。
//カスタムコメント function comcom($comment,$args,$depth){ $GLOBALS['comment']=$comment;?> <li> <?php comment_text();?> <p> <?php comment_date();?><?php comment_time();?>| <?php comment_author();?> </p> <?php }
comcomというIDの投稿リストが呼び出されたら、表示順序を文章(comment_text)・投稿日(comment_date、comment_time)・投稿者(comment_author_link)の順に直します。
これらを、ウィジェットの記述の上でも下でもいいので、<?phpと?>の間に記述しましょう。function.phpの中身は最初の行が<?phpで最後の行が?>でなければなりません。
ここまで終えたら外観→テーマ編集→スタイルシートでスタイルを整えておきましょう。コメントフォームの編集はブラウザ→ソース表示でIDやクラス名を確認しながら編集します(自分でID名・クラス名を指定できないため)。
コメントor補足情報orご指摘あればをお願いします。
- << 前のページ
- 次のページ >>