Intereting Posts
Панель управления Admin не показывает веб-сайты WordPress Как найти и восстановить боковую панель, которую я случайно удалил? Проверьте, есть ли страница подстраниц как перенести wpmu с одного хоста на другой? Добавить меню администратора внутри объекта Construct или Init Как вставить текст на все страницы и сообщения до или после определенных мест? Различные посты для разных авторов Выпадающая папка JQuery не работает в теме Безопасно ли / рекомендуется использовать функцию wp_enqueue_script вне файла functions.php? аргумент массива do_action передается как ссылка не копия Сделайте 2 разных страницы проверки WooCommerce? Как добавить фиксированное значение в get_post_meta () ;? Могу ли я использовать ShortCode в шаблоне? Как разрешать пользователям просматривать собственные профили Buddypress? Демпинговая переменная в пользовательской функции pre_gets_post в functions.php возвращает NULL

Получите все липкие сообщения от одного пользователя через идентификатор пользователя

Поэтому мне нужно получить количество липких сообщений, которые есть у каждого пользователя, и сравнить их с одной переменной. Мне удалось это сделать, но мне интересно, правильно ли это сделать.

//Retrive all sticky posts ID $sticks = $wpdb->get_results("SELECT * FROM $wpdb->options WHERE option_name = 'sticky_posts'"); $stickies = unserialize( $sticks[0]->option_value ); //array with the IDs of sticky posts // print_r($stickies); // Get user id from sticky post ID $i = 0; foreach ($stickies as $sticki) { $post_meta = get_post($sticki); if($post_meta->post_author == $current_user->ID && $post_meta->post_status != 'trash' && strtotime($post_meta->post_date) > strtotime('-30 days') ) { $i++; } } 

И $ i – количество липких сообщений для этого пользователя. Так что я делаю, зацикливая все липкие сообщения, получая сообщение meta за каждую липкую запись и через пост-мета, чтобы опубликовать автора, чтобы сравнить его с текущим идентификатором пользователя.

Скопируйте и вставьте эту функцию в файл function.php в текущей теме.

 // Create a new filtering function that will add where clause to the query function filter_where( $where = '' ) { // posts in the last 30 days $where .= " AND post_date > '" . date('Ym-d', strtotime('-30 days')) . "'"; return $where; } 

Вставьте его там, где вам нужно отобразить.

 $sticky = get_option( 'sticky_posts' ); $args = array( 'numberposts' => -1 'post__in' => $sticky, 'author' => $current_user->ID ); add_filter( 'posts_where', 'filter_where' ); $query = new WP_Query( $args ); remove_filter( 'posts_where', 'filter_where' ); // The Loop while ( $the_query->have_posts() ) : $the_query->the_post(); echo '<li>' . get_the_title() . '</li>'; endwhile;