2012-06-04 3 views
1

Итак, я пытаюсь отфильтровать список сообщений (мой на самом деле пользовательский тип сообщения) в WordPress Dashboard по ID.Как фильтровать/исключать сообщения по идентификатору в списке сообщений в WordPress Dashboard/Admin

Я проверяю другую область (пользовательский виджет), чтобы узнать, может ли пользователь редактировать данное сообщение (не, я намеренно уклоняюсь от ролей WordPress и т. Д.), Если они не могут я хочу фильтровать/исключать этот пост из список.

Я хочу взять этот список:

Смотрите изображение: https://lh6.googleusercontent.com/-nQLDUpoHUig/T84sUXwqNDI/AAAAAAAAB1o/fzZvCkSjawI/w678-h533-k/list_of_posts.PNG

... и отфильтровать идентификатор сообщения о том, что другая функция возвращает

+0

Я не совсем уверен, что вы имеете в виду, не могли бы вы привести пример? – n0pe

+0

См. Мои правки к исходному сообщению. Надеюсь, что поможет прояснить, что я пытаюсь сделать ... –

ответ

2

Хорошо, так что я ответил на мой собственный вопрос. Вот какой код я сделал.

function exclude_list_per_function($query) { 

    global $wpdb; 

    //gets all the post ID's, I know this is a bit of a hack 
    $querystr = " 
     SELECT $wpdb->posts.ID 
     FROM $wpdb->posts 
    "; $post_ids = $wpdb->get_results($querystr, OBJECT); 

     //Go through each post and pass it to a function that returns true if the user_can, and false if the user_can't 
     foreach($post_ids as $post_obj){ 
      if(!can_user_other_function_view_this_post(get_post($post_obj->ID))){ 
       //if they_can't, add them to the array to be excluded 
       $posts_not_in[]=$post_obj->ID; 
      } 
     } 

     //Set those posts to be excluded from the list. 
     $query->set('post__not_in', $posts_not_in); 
} 

add_action('pre_get_posts', 'exclude_list_per_function'); 
+0

Рад, что вы поняли это, извините за то, что слишком медленно :) – n0pe

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

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