Intereting Posts
Как переименовать wp-login.php для Multisite? Показать термины на странице архива Совокупные комментарии, с разбивкой на страницы разбиение на страницы для пользовательского цикла с несколькими типами сообщений Лучшая практика: удалить данные при деактивации или удалить? В чем разница между WP: template_directory vs TEMPLATEPATH Почему редактор HTML не переносит мой код в теги абзаца при нажатии кнопки ввода Как добавить пользовательский шрифт в тему Дублирование сообщений с помощью Feedwordpress Изменение описания метатега wordpress с использованием функций WP Редактор TinyMCE Editor изменяет поведение кнопки подчеркивания – тэг u вместо подчеркивания подчеркивания текста Категория разбиения на страницы не работает Как я могу это сделать, когда я нажимаю на один из пунктов меню, на этой странице отображаются только сообщения с той же категорией? Изображение все еще связано как прикрепление к странице, даже если оно было удалено 2 веб-сайта 1 база данных …

Как заказать Комментарий по заголовку сообщения?

Все, что я пробовал до сих пор, не сработало. Поэтому я начал искать повсюду в течение нескольких дней, пытаясь понять, как заказать комментарии по названию должности, в которую они сделаны. (Я тоже попробовал meta_value, но, похоже, я не делал этого правильно). Я прочитал wp codex. Вот что я пытаюсь сделать комментарии сортировки по заголовку сообщения, но нет никакого названия или параметра post_title для orderby комментариев. Любая помощь будет оценена.

<?php $args = array( 'status' => 'approve', 'post_status' => 'publish', 'post_type' => 'post', 'orderby' => 'title', 'order' => 'DESC' ); $comments_query = new WP_Comment_Query; ?> 

Solutions Collecting From Web of "Как заказать Комментарий по заголовку сообщения?"

Класс WP_Comment_Query поддерживает порядок:

 'comment_agent', 'comment_approved', 'comment_author', 'comment_author_email', 'comment_author_IP', 'comment_author_url', 'comment_content', 'comment_date', 'comment_date_gmt', 'comment_ID', 'comment_karma', 'comment_parent', 'comment_post_ID', 'comment_type', 'user_id', 'comment__in', 'meta_value', 'meta_value_num', 

Есть способ настроить его с помощью фильтров, чтобы мы могли поддерживать упорядочение по заголовку сообщения:

 $args = [ 'status' => 'approve', 'post_status' => 'publish', 'post_type' => 'post', 'orderby' => '_post_title', // <-- Our custom orderby value 'order' => 'DESC' ]; $comment_query = new WP_Comment_Query( $args ); 

Простой демонстрационный плагин для поддержки заказа _post_title может быть в PHP 7:

 /** * Adjust orderby comments clause */ add_filter( 'comments_clauses', function( $clauses, \WP_Comment_Query $cq ) use ( &$wpdb ) { $qv = $cq->query_vars; $orderby = $qv['orderby'] ?? ''; $order = $qv['order'] ?? 'ASC'; if( '_post_title' === $orderby && in_array( strtoupper( $order ), [ 'ASC', 'DESC' ], true ) ) $clauses[ 'orderby' ] = " {$wpdb->posts}.post_title {$order}, {$wpdb->comments}.comment_ID {$order} "; return $clauses; }, 10, 2 ); 

а затем, чтобы таблица столбец была присоединена к таблице комментариев, мы можем установить для параметра post type сообщение «post», если оно отсутствует:

 /** * Make usre we have the posts table joined by making sure the post_type isn't empty. */ add_action( 'pre_get_comments', function( \WP_Comment_Query $cq ) { $qv = &$cq->query_vars; $orderby = $qv['orderby'] ?? ''; if( '_post_title' === $orderby && empty( $qv['post_type'] ) ) $qv['post_type'] = 'post'; } ); 

Обратите внимание, что такой запрос:

 SELECT wp_comments.comment_ID FROM wp_comments JOIN wp_posts ON wp_posts.ID = wp_comments.comment_post_ID WHERE ( comment_approved = '1' ) AND wp_posts.post_status IN ('publish') AND wp_posts.post_type IN ('post') ORDER BY wp_posts.post_title DESC, wp_comments.comment_ID DESC 

неэффективен, поскольку использует временные и filesort .

Надеюсь, вы сможете настроить его в соответствии с вашими потребностями.