2015-10-22 2 views
1

В настоящее время я работаю над сайтом Wordpress с установленным форумом Bbpress. Я использую шорткод, чтобы добавить все популярные темы на (не форум) странице:Wordpress: Bbpress добавить дополнительный фильтр к популярному виду

[bbp-single-view id="popular"] 

Я хочу, чтобы добавить дополнительный фильтр для этой функции, и я не могу понять, как это сделать. Я хотел бы отфильтровать мета-значение «_bbp_last_active_time», чтобы проверить, было ли какое-либо действие по теме в прошлом месяце.

Я нашел этот сценарий в ядре bbpress, но я не знаю, как я могу добавить еще один фильтр:

// bbpress.php line 672 

    bbp_register_view(
     'popular', 
     __('Most popular topics', 'bbpress'), 
     apply_filters('bbp_register_view_popular', array(
      'meta_key'  => '_bbp_reply_count', 
      'max_num_pages' => 1, 
      'orderby'  => 'meta_value_num', 
      'show_stickies' => false 
     ) 
    )); 

я попробовать что-то вроде этого с SQL и пользовательских шорткодом, но я не» t знать, как преобразовать это в список тем с правильными функциями раскладки:

SELECT 
    wp_posts.post_parent, COUNT(*) as count, wp_postmeta.* 
FROM 
    wp_posts, wp_postmeta 
WHERE 
    wp_posts.post_type = 'reply' 
AND 
    wp_postmeta.post_id = wp_posts.post_parent 
AND 
    wp_postmeta.meta_key = '_bbp_last_active_time' 
AND 
    wp_postmeta.meta_value > (NOW() - INTERVAL 1 MONTH) 
GROUP BY 
    wp_posts.post_parent 
ORDER BY 
    count DESC 
LIMIT 5; 

Заранее спасибо! Помощь очень ценится!

ответ

0

я уже нашел решение:

$date_now = date('Y-m-d H:i:s'); 
$date=date_create($date_now); 
date_sub($date,date_interval_create_from_date_string("30 days")); 
$new_date = date_format($date,"Y-m-d H:i:s"); 
bbp_register_view(
    'jaappopular', 
    __('Most popular topics', 'bbpress'), 
    apply_filters('bbp_register_view_popular', array(
     'meta_key'  => '_bbp_reply_count', 
     'max_num_pages' => 1, 
     'orderby'  => 'meta_value_num', 
     'show_stickies' => false, 
     'meta_query' => array(
      'relation' => 'AND', 
      array(
       'key'  => '_bbp_last_active_time' , 
       'value' => $new_date, 
       'compare' => '>=', 
      ) 
     ), 
    ) 
)); 
); 

YEAH!

 Смежные вопросы

  • Нет связанных вопросов^_^