#php #sql #wordpress
#php #sql #wordpress
Вопрос:
Я использую плагин «Комментарии, как не нравится» в WordPress, чтобы моим пользователям могли нравиться комментарии других пользователей. Это работает нормально, но я пытаюсь создать плагин дополнения, который будет упорядочивать комментарии по количеству лайков. Мне удалось реорганизовать комментарии таким образом, но проблема, с которой я сталкиваюсь, заключается в том, что пользователи больше не могут отвечать на комментарии из-за этого изменения. Количество подобных хранится в wp_commentmeta, как показано ниже.
comment_id | мета_кей | мета_значение |
---|---|---|
1 | cld_like_count | 3 |
Моя функция выбирает и упорядочивает эту таблицу по мета-значению, а затем извлекает идентификатор комментария каждого комментария. Затем он использует этот массив идентификаторов для организации моих комментариев.
lt;?php function like_filter_comments( $comments ) { return like_organize_comments( $comments ); //return $commentsbylike; } add_filter ('comments_array', 'like_filter_comments'); //organize comments so that most liked comments appear first function like_organize_comments($unorganizedComments){ global $wpdb; //$allComments = get_comments(); $user_id = 1; $wpdb_prefix = $wpdb-gt;prefix; $wpdb_comment = $wpdb_prefix . 'comments'; $wpdb_commentmeta = $wpdb_prefix.'commentmeta'; $meta_commentlike = $wpdb-gt;get_results("SELECT comment_id, meta_key, meta_value FROM $wpdb_commentmeta WHERE meta_key = 'cld_like_count' ORDER BY meta_value DESC;"); $i=0; foreach($meta_commentlike as $key =gt; $value){ //print_r( $key); $metav = $value-gt;meta_value; $comment = $value-gt;comment_id; $arr[$i ] = $comment; //comment_id listed in order by likes } $commentlike = $wpdb-gt;get_results(" SELECT * FROM $wpdb_comment WHERE comment_parent IN (0) ;"); var_dump($commentlike); return $arr; }
Описанная выше функция успешно организует комментарии по количеству лайков, но лишает возможности отвечать на комментарии. Я попытался выбрать комментарии только без родителей, но у меня возникли трудности, потому что comment_parent находится в таблице wp_comment, а мета-значение like count находится в таблице wp_commentmeta. Я рассмотрел возможность объединения таблиц вместе, но не нашел похожих столбцов для объединения.