私はテーマを.Orgレポに提出する準備をしていて、すべてが正しく行われていることを確認したいと思いました。私のデザインに残っている最大の穴の1つはコメントテンプレートです。
私はいくつかのテーマでcomments.phpを見ました、それらの間の二十テンチーフ、そして私が始めたときより混乱しています。コメントテンプレートは(Ottoのチュートリアル、WPエンジニアなどに基づいて)単純化されているように見えますが、ほとんどのテーマのcomments.phpのソースを見ると、まだ複雑です。クリスチャンモントーヤに由来する昔の時代のように。
それでは、私を助けてください - WP 3.0/3.1の時点での最先端の機能をとらえ、それでもコードの単純さを維持するコメントテンプレートを設定する最も良い方法は何ですか?
あなたは本当に多くを必要としません。
<h2 id="comments"><?php comments_number(); ?></h2>
これが記事ループの comments_link()
のターゲットになります。
通常、これらのリンクを関数に入れて、コメントリストの上と下の関数を呼び出します。
class TTT_Template {
function comment_pager()
{
if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) )
{
?>
<div class="comment-navigation">
<div class="nav-previous">
<?php
previous_comments_link( 'Ältere Kommentare' );
?>
</div>
<div class="nav-next">
<?php
next_comments_link( 'Neuere Kommentare' );
?>
</div>
</div>
<?php
}
}
}
あなたはカスタムコールバック関数を使うことができます、しかし、あなたはする必要はありません。 wp.orgのテーマでは、コールバックにグラバターを使用します。そして、私はmy_
で名前を付けないでください。 ;)
<ol class="commentlist">
<?php
wp_list_comments(
array (
'type' => 'comment'
, 'style' => 'ul'
, 'callback' => 'my_comment_callback'
)
);
?></ol>
ご覧のとおり、type
パラメータを使用すると、通常のコメントとpingを区別することができます。詳しくは コーデックス をご覧ください。 2つの別々のリストを作成する場合は、空のリストを避けるためにget_option( 'default_ping_status' );
をチェックしてください。
あなたは デフォルト 設定を使うか、あなた自身のフィルタを追加することができます。私は カスタムクラス を使ってtextareaを上に移動し、他の細かいことをいくつか並べ替えます。
if ( comments_open( get_the_ID() ) )
{
locate_template( array ( '/php/class.TTT_Comment_Form.php' ), TRUE, TRUE );
$ttt_comment_class = new TTT_Comment_Form();
comment_form();
}
そしてそれだけです。
<?php
if ( ! defined('ABSPATH') ) { die ('Nö.'); }
if ( have_comments() )
{
?><h2 id="comments"><?php comments_number(); ?></h2>
<?php
TTT_Template::comment_pager();
?>
<ol class="commentlist">
<?php
wp_list_comments(
array (
'type' => 'comment'
, 'style' => 'ul'
, 'callback' => 'my_comment_callback'
)
);
?></ol>
<?php
TTT_Template::comment_pager();
}
if ( comments_open( get_the_ID() ) )
{
locate_template( array ( '/php/class.TTT_Comment_Form.php' ), TRUE, TRUE );
$ttt_comment_class = new TTT_Comment_Form();
comment_form();
}
使用 Disqus