Intereting Posts
Миграция с WordPress.com на сайт, размещенный на сайте, и посетителей с автофокусом? Те же самые условия, не работающие на двух разных крючках Как отобразить файл .ptm на моем сайте WP без JAVA Заказ пользовательской таксономии Woocommerce Плагин WordPress не будет отображаться по некоторым темам Не получать метавыход добавить идентификатор CSS в тело страницы в wordpress Напомните пользователю об их учетной записи, если они не использовали его в течение 6 месяцев WP Video media player не загружает правильный CSS после загрузки AJAX Функция сортировки Woocommerce не работает Регистрация пользователя на субсайте в многоузловой конфигурации Сортировка персонализированных сообщений типа публикации в месяц публикации и вставка в другую строку WordPress Страница Все содержимое в шаблоне Хорошая или плохая конвенция? Проблема с добавлением JavaScript в визуальный редактор (код для вставки Sharpspring) Динамические CSS Vs Inline вопросы в коде в любом случае в WordPress Темы?

Как получить bbpress липкие темы

Я хочу получить липкие темы bbpress, используя такой запрос:

$sticky = get_option('sticky_posts'); rsort( $sticky ); $sticky = array_slice( $sticky, 0, 2); query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1, 'post_type'=> 'topic' ) ); if (have_posts()) : while (have_posts()) : the_post(); //do something endwhile; endif; 

Как я могу сделать запрос что-то вроде этой работы?

Solutions Collecting From Web of "Как получить bbpress липкие темы"

Вы можете сделать запрос, как указано выше, используя следующий код.

 <?php query_posts( array( 'posts_per_page' => 2, 'meta_key' => '_bbp_sticky_topics', 'post_type'=> 'topic', 'order' => 'ASC' ) ); if (have_posts()) : while (have_posts()) : the_post(); //do something endwhile; endif; ?> 

Но я настоятельно рекомендую вам не изменять основной запрос с помощью query_posts () и вместо этого использовать WP_Query следующим образом.

 <?php $query = new WP_Query( array( 'posts_per_page' => 2, 'meta_key' => '_bbp_sticky_topics', 'post_type'=> 'topic', 'order' => 'ASC' ) ); if ( $query->have_posts()) : while ($query->have_posts()) : $query->the_post(); //do something endwhile; endif; /* Restore original Post Data */ wp_reset_postdata(); ?> 

лучший способ:

 $query = new WP_Query( array( 'p' => $post->ID, 'post_type'=> 'forum', 'meta_key' => '_bbp_sticky_topics' ) ); if ( $query->have_posts()) : while ($query->have_posts()) : $query->the_post(); $sticky = get_post_meta( $post->ID, '_bbp_sticky_topics' ); $sticky = maybe_unserialize( $sticky ); endwhile; endif; wp_reset_postdata(); 

Тогда $ sticky будет массивом со всеми липкими темами из текущего форума, который вы запрашиваете, вы можете сделать второй запрос с post__in чтобы показать содержимое липкой темы, название и т. Д.

После многих обходных решений я нашел решение. Этот код даст вам результаты и почему я объясню:

 <?php $query = new WP_Query( array( 'posts_per_page' => 2,'post_type'=> 'forum', 'meta_key' => '_bbp_sticky_topics' ) ); if ( $query->have_posts()) : while ($query->have_posts()) : $query->the_post(); the_title(); echo '<br />'; the_ID(); echo '<br />'; endwhile; endif; /* Restore original Post Data */ wp_reset_postdata(); ?> 

трюк заключается в использовании 'post_type'=> 'forum' вместо 'post_type'=> 'topics' , и он покажет вам форумы вместо тем, потому что wp_postmeta сохраняет данные, подобные этому a:1:{i:0;i:632;} с post_id форума не темы . Спасибо за Винода Дальви, он действительно дал мне направление для решения этой проблемы.

Для справок в будущем, если вы хотите получить массив супер-липких тем (застряли перед собой), вы можете просто использовать этот код:

 $stickies = get_option( '_bbp_super_sticky_topics', array() );