Intereting Posts
Другая роль для каждого сайта в многопользовательском Как добавить кнопки в пользовательский столбец в таблице таксономии? WordPress для заполнения поля ввода пароля значением Что стоит использовать add_action, когда мы можем просто использовать add_filter? Условия тестирования WordPress на окнах wp_remote_get не работает с безопасными подключениями https? Как добавить файл .js Только на одной конкретной странице Динамически на голову Поиск сообщения во всех блогах в WPMU? Проблема с javascript wp.media с выбором Как построить два сайта WordPress с использованием двух разных тем с той же базой данных (Нет! Я не занимаюсь многосетевой сетью)? Как я могу добавить «.html» в конец одного URL-адреса на веб-сайте WordPress? Пользовательские сообщения на разных страницах вызов функции из класса в вашем шаблоне set_post_thumbnail () показывает Unattached on backend под Media Как найти идентификатор привязки для первого изображения в сообщении

Использовать пользовательский запрос результатов для показа сообщений WordPress

У меня есть этот код, прежде чем показывать сообщения.

$query_args = array( 'post_type' => 'post', 'posts_per_page' => 4, 'meta_key' => 'Views', 'orderby' => 'meta_value_num', 'order' => 'DESC', 'ignore_sticky_posts' => true ); $the_query = new WP_Query( $query_args ); if( $the_query->have_posts() ) { while( $the_query->have_posts() ) { $the_query->the_post(); echo '<a class="popularPostLinks" href="' . get_the_permalink() . '" rel="external" target="_blank">' . get_the_post_thumbnail() . ' <br> <div> <p>' . get_the_title() . '</p> </div> </a>'; } } else { // No posts found. } // Restore original post data. wp_reset_postdata(); 

но теперь я использую свой пользовательский запрос:

 $getAllTimeRows = $wpdb->get_results( $wpdb->prepare( "SELECT post_id, SUM( post_value ) AS 'Views' FROM {$wpdb->prefix}PopularPosts GROUP BY post_id ORDER BY Views DESC LIMIT 4" ) ); 

Как я могу использовать этот результат выше массива, чтобы показывать сообщения так же, как то, как WP Query показывает сообщения? $getAllTimeRows содержит строки (макс. 4) для отображения (max 4) сообщений. См. Ниже массив.

 print_r ( $getAllTimeRows ) Array ( [0] => stdClass Object ( [post_id] => 213 [Views] => 16 ) [1] => stdClass Object ( [post_id] => 215 [Views] => 11 ) [2] => stdClass Object ( [post_id] => 217 [Views] => 9 ) [3] => stdClass Object ( [post_id] => 227 [Views] => 7 ) ) 

Вы можете получить тот же результат, выведя значения из массива PHP. Поскольку это многоколоночный массив, вам нужно запустить цикл foreach и получить значения каждого дочернего элемента.

В основном это стандартный материал PHP, ничего особенного. Хотя раньше вам не нужно было указывать идентификатор сообщения в каждой функции WordPress, так как вы использовали его внутри цикла, но теперь вам придется это сделать.

Итак, вот вывод.

 foreach( $getAllTimeRows as $getAllTimeRow ) { $post_id_num = $getAllTimeRow->post_id; echo '<a class="popularPostLinks" href="' . get_permalink( $post_id_num ) . '" rel="external" target="_blank">' . get_the_post_thumbnail( $post_id_num ) . '<br> <div> <p>' . get_the_title( $post_id_num ) . '</p> </div> </a>'; }