web-dev-qa-db-ja.com

コメントをkarmaで並べ替え

私は私のコメントテンプレートでプラグイン コメント評価 (親指を上にする - 親指を下にする)を使用しています。コメントテーブルのdb列 "comment_karma"に "karma"を格納します。 wp_list_commentsを高い順に並べ替える方法を探しています。

のようなものを試してみました

<?php wp_list_comments('callback=mu_custom_callback&orderby=comment_karma&order=DESC') ?>

しかし、うまくいきません。

ありがとう

UPDATE

Functions.phpに配置して動作しました

function comment_comparator($a, $b)
    {
        $compared = 0;
        if($a->comment_karma != $b->comment_karma)
        {
            $compared = $a->comment_karma < $b->comment_karma ? 1:-1;
        }
        return $compared;
        }

とcomments.phpに

global $wp_query;
    $comment_arr = $wp_query->comments;
    usort($comment_arr, 'comment_comparator');
    wp_list_comments('callback=gtcn_basic_callback', $comment_arr);

この ウェブサイトにあります

1
Andycap

プラグイン開発者用ページ をチェックアウトしていない場合は、試してみてください。

if (function_exists(ckrating_get_comments)) {
$post_id = $post->ID;
$mycomments = ckrating_get_comments(
"post_id=$post_id&status=approve&
orderby=comment_karma&order=DESC");
}
else
$mycomments = null;
wp_list_comments(array(), $mycomments);

UPDATE

それをfunctions.phpに置くことを動かしました私はfunctions.phpに置くことを動かしました `function comment_comparator($ a、$ b)

function comment_comparator($a, $b)
    {
        $compared = 0;
        if($a->comment_karma != $b->comment_karma)
        {
            $compared = $a->comment_karma < $b->comment_karma ? 1:-1;
        }
        return $compared;
        }

とcomments.phpに

global $wp_query;
    $comment_arr = $wp_query->comments;
    usort($comment_arr, 'comment_comparator');
    wp_list_comments('callback=gtcn_basic_callback', $comment_arr);

この ウェブサイトにあります

4
MartinJJ

@ Andycapまさに私が探しているものです。しかしどういうわけかそれは私のために動作しません。私は何か悪いことをしているとはかなり確信しています。 functions.phpとcomments.phpのどこに正確にコードを配置するかを説明できますか。私はあなたのコードを追加したり、それを交換する必要がありますか?

0
ilistr