Перейти к содержимому


Выбрать шаблон и создать сайт

Хуки и Экшин генерации постов

#1 c0ns0l3

c0ns0l3
  • Пользователь
  • 264 сообщений
  • Репутация: 49
0

Отправлено 11 Апрель 2012 - 13:18

Сабж заключается в следующем...
Небольшая предистория - потребовалось на внеочередном проекте реализовать доступ к контенту сайта, естественно на WP, по аналогии как в Виндоусе...
Пользователи, Группы - доступ раскидывается по ним и т.д.

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

То есть я имею авторизированного пользователя (его ID) пост, или группу к которой идет запрос, и значение полученное от своего класса - тру/фэлс на просмотр в частности - какой хук использовать что б при ФЭЛСЕ мне удалить из wp_query данный пост или категорию..?

 

 

  • 0

#2 c0ns0l3

c0ns0l3
    Topic Starter
  • Пользователь
  • 264 сообщений
  • Репутация: 49

Отправлено 13 Апрель 2012 - 16:49

Спасибо конечно что откликнулись....
Собсно по сабжу...
Пока по проекту, облегчили задачу, и поставили ограничение только на категории.
Тоесть - создаем группы пользователей, добавляем в них пользователей зареганых на нашем сайте под управлением WP - и по соотношению можно ли той или иной группе показывать ту или иную категорию - скрывать или показывать ее в глобальных запросах. Тоесть должен быть написан плагин, который это перехватывал не прописывая ничего лишнего в ядро ВП или в Тему.

Реализовал.
Как сделать группы и распихивать по ним пользователей у всех будут свои способы.
Но в итоге, я добился этого и начал получать массив ID "рубрик" - Таксономий, к которым пользователь недолжен получать доступ.

Вид массива простой Array (3,5,12,37).

И вот самое важное, может кому то пригодится.

add_filter('list_terms_exclusions',array(&$pm_access,'hideTerms'),10,2);
public function hideTerms($exclusions,$args) {
		    if(!is_admin())
			    $exterms = $this->_get_term_exclusion();
// здесь я и получаю тот самый масив, в котором ID недоступных кат.
			   
		    if(count($exterms)>0) {
			    $exclusions = str_replace(')','',$exclusions);
			    foreach ( $exterms as $exterm ) {
		   if ( empty($exclusions) )
		    $exclusions = ' AND  t.term_id <> ' . intval($exterm) . ' ';
		   else
		    $exclusions .= ' AND t.term_id <> ' . intval($exterm) . ' ';
		  }
			    $exclusions .= ')';
		    }
		   
		    return $exclusions;
}

  • 1


Оформление форума – IPBSkins.ru