| ブログトップ | CMS関連 | PHP関連 |

WordPressで記事のコメント一覧とトラックバック一覧を表示する方法

■突然ですが追記です
以下で長々と述べるコメントとトラックバックのセパレート方法ですが、「Trackping Separatorプラグイン」で何とかなるようです。
参考サイト (日々是好日さん)

コメント・トラックバックの別々表示方法パート2です。
ただしこの記事に関しては、「プラグイン検索をしてもあまりピンとこないし、時間もないからもう無理やり作ってしまえ!」という考えの元作ったため、利用価値はあまり無いかもしれません。
覚書ということで^^;

で、その無理やりな方法とは、

データベースから$wpdb->get_results使って取得する

です。
困った時のSQL作戦というわけです。

以下やり方

 

まずはコメント

<?php
    $query = "SELECT * FROM wp_comments 
    WHERE comment_post_ID = '".get_the_ID()."' 
    AND comment_approved = '1' 
    AND comment_type = ''";
    $get_comments = $wpdb->get_results($query, "ARRAY_A");
    if(!empty($get_comments)):
        foreach($get_comments as $comment_value):
?>
<div>
    <p><?php echo $comment_value["comment_author"]; ?> | <a href="<?php echo $comment_value["comment_author_url"]; ?>">URL</a> | <?php echo $comment_value["comment_date"]; ?></p>
    <p><?php echo $comment_value["comment_content"]; ?></p>
</div>
<?php
        endforeach;
    endif;
?>

データベースの構造についてはこちらをご参照ください。 参考サイト

■SQLの条件になっているフィールド名について
・comment_post_ID:記事のID。get_the_ID()で呼び出しましょう。
・comment_approved:「0」承認待ち、「1」承認済み、「spam」スパム
・comment_type:「trackback」トラックバック、「pingback」ピンバック、コメントは値なし(つまり空)

取得したデータは、「wp_comments」テーブルのフィールド名がキーとなって配列に格納されています。あとはforeachでループして、配列からデータを呼び出せば完成です。

■呼び出している配列のキーについて
・comment_author_url:コメント投稿者のURL
・comment_author:コメント投稿者名
・comment_date:コメント投稿日時
・comment_content:コメントの内容

これで

ダリ | URL | 2010-07-15 19:02:14
この記事については、ちょっと無理やりな方法でコメント取り出してます。使えなくても勘弁ね。

という風なコメント記事が一覧を表示できます。

 

つづいてトラックバック

<?php
    $query = "SELECT * FROM wp_comments 
    WHERE comment_post_ID = '".get_the_ID()."' 
    AND comment_approved = '1' 
    AND comment_type = 'trackback'";
    $get_comments = $wpdb->get_results($query, "ARRAY_A");
    if(!empty($get_comments)):
        foreach($get_comments as $comment_value):
?>

<div>
    <p><a href="<?php echo $comment_value["comment_author_url"]; ?>"><?php echo $comment_value["comment_author"]; ?></a> | <?php echo $comment_value["comment_date"]; ?></p>
    <p><?php echo $comment_value["comment_content"]; ?></p>
</div>

<?php
        endforeach;
    endif;
?>

コメントのときとほぼ同じです。

これで

ダリの雑記 | 2010-07-15 19:02:14
コメントとトラックバック...この記事については、ちょっと無理やりな方法でトラックバックを取り出してます。使えなくても勘弁ね。

という風なトラックバック記事が一覧表示がされます。

とりあえずはこちらで何とか機能しますが、たぶん調べてみればもっと便利なプラグインが存在するでしょうから、そちらをご利用になることをお勧めします。

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2010年07月18日 | コメント(0) | トラックバック(0) | CMS関連 | PHP関連

トラックバック

トラックバックURL

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2017 ダリの雑記