TopWordPress > カスタマイズ > コメント > コメントとトラックバックを分けて表示する for WordPress(その2:タイトルを非表示にする方法)
2007年4月12日

コメントとトラックバックを分けて表示する for WordPress(その2:タイトルを非表示にする方法)

Posted at April 12,2007 1:25 AM
Category:[コメント, トラックバック]
Tag:[, , , , ]

前回エントリーした「コメントとトラックバックを分けて表示する for WordPress(その1)」では、記事に対しコメント・トラックバックがない場合でも「コメント」および「トラックバック」のタイトルを非表示にすることができません。

ということで本エントリーでタイトルを非表示にする方法を紹介します。このカスタマイズで下記のような動作になります。

  • コメント・トラックバックとも0件の場合、コメントタイトル・トラックバックタイトルを非表示
  • コメントが0件の場合:コメントタイトルを非表示
  • トラックバックが0件の場合、トラックバックタイトルを非表示

下記は当サイト配布のテンプレートでのカスタマイズ例です。シングルポスト本文下のトラックバックURL・トラックバック・コメント・コメントフォームが上記のそれぞれのケースでどのように表示されるか参考にしてください。

コメント・トラックバックともに0件の場合
コメント・トラックバックともに0件の場合

コメントあり・トラックバック0件の場合
コメント・トラックバックともに0件の場合

コメント0件・トラックバックありの場合
コメント・トラックバックともに0件の場合

コメント・トラックバックともにありの場合
コメント・トラックバックともに0件の場合

本エントリーでは公開テンプレートをサンプルにして説明しておりますが、非表示にする仕組みを3項で説明していますので、他のテンプレートでも同様の機能を実装することが可能です。

なお本エントリーのカスタマイズを実施する前に「コメントとトラックバックを分けて表示する for WordPress(その1)」の3.1項までの作業は完了させておいてください。
このエントリーは元記事の3.2項の表示方法を変更する説明のみです。

1.プラグインの修正

WordPress の管理画面にログインし、[プラグイン] - [プラグインエディタ] をクリックし、右側にある「プラグインファイル」より「Trackping Separator」をクリックします。

そして下記の青色部分を追加します。

//This function has the same effect as template function comments_number(), but it return only the number of comments. Track/Ping backs are not included.
function comments_only_number($no='', $one='', $many='') {
    global $wpdb, $tablecomments, $post;
    $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1'");
    $cnt = count($comments);
if (!$cnt)
    echo $no;
elseif ($cnt == 1)
    echo $one;
else
    echo str_replace("%", $cnt, $many);
}
 
function get_comments_only_number($no='', $one='', $many='') {
    global $wpdb, $tablecomments, $post;
    $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1'");
    $cnt = count($comments);
if (!$cnt)
    return $no;
elseif ($cnt == 1)
    return $one;
else
    return str_replace("%", $cnt, $many);
}

2.コメントテンプレートの入れ替え

ここでは公開テンプレート用の comment.php を丸ごと入れ替える手順で説明します。下記のいずれかのリンクをクリックしてコメント用テンプレートをダウンロードします。

comments.zip / comments.lzh

解凍した中にある comments.php を任意のエディタで開きます。

そして WordPress の管理画面にログインし、[表示] - [テーマエディタ]で「コメント」を選択、comments.php の内容を丸ごとテキストエリアの内容と入れ替え、保存してください。

3.非表示にする方法

下記のそれぞれのPHPソースのように、0件の時に非表示にしたい部分を青色部分のコードで括ります。

3.1 コメントが0件の時に非表示にする

<?php if (get_comments_only_number('0', '1', '%') != '0') { ?>
     :
<? } ?>

3.2 トラックバックが0件の時に非表示にする

<?php if (trackpings('count') != '(0)') { ?>
     :
<? } ?>

トラックバック件数取得はプラグインの実装をそのまま利用できるのですが、コメント件数の取得ができなかったため、1項でソースコードを追加しています。
もう少し適切な実装があるかもしれませんがとりあえず。

Posted by yujiro
関連記事
人気エントリー
トラックバックURL


トラックバック

コメントとトラックバックを分けて表示する from Makologg???
@ET.ではブログツールとしてWordpressを使用していますが、何点か気に入... [続きを読む]

Tracked on November 25, 2007 5:02 PM
コメントする

*必須



お知らせ:2008年5月現在、多忙のため、7月頃までコメントを速やかに回答できない状態が続きます。ご質問の内容によっては回答が7月以降になる可能性がありますので、予めご了承ください。

太字 イタリック アンダーライン ハイパーリンク 引用

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

Now loading...
Entry Trackbacks
Entries of this Category
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
BlogPeople
Now loading...
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 4.1
 
List Me!