2012-06-04 134 views
1

過濾/排除在帖子列表中的帖子所以,我想要做的是按ID在WordPress儀表板中過濾帖子列表(我實際上是一個自定義帖子類型)。如何在WordPress的儀表板/管理

我正在檢查另一個區域(自定義小部件)以查看用戶是否可以編輯給定的帖子(不是,我故意避開WordPress角色等),如果他們不能,我想過濾/排除該帖子名單。

我想利用這個列表:

見圖片:https://lh6.googleusercontent.com/-nQLDUpoHUig/T84sUXwqNDI/AAAAAAAAB1o/fzZvCkSjawI/w678-h533-k/list_of_posts.PNG

...並過濾掉後ID的另一個函數返回

+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