Wordpress — получить метаданные сообщения в фильтре «posts_where»

как проверить, соответствует ли метаполе сообщения чему-либо в фильтре «posts_where»? Я хочу пропускать сообщения, для которых в пользовательском поле my_meta_box_check установлено значение «выключено».

Спасибо!


person Rik de Vos    schedule 23.12.2011    source источник


Ответы (1)


Вы можете сделать это так:

function filter_where( $where = '' ) {
   global $wpdb;  
   $where .= " AND ($wpdb->postmeta.meta_key = 'my_meta_box_check' AND $wpdb->postmeta.meta_value = 'off')";
   return $where;
}
person Pat    schedule 23.12.2011
comment
он не отображает никаких сообщений сейчас. Даже $where .= " AND ($wpdb->postmeta.meta_key = 'my_meta_box_check')"; не работает :( - person Rik de Vos; 23.12.2011
comment
Упс, забыл глобальную ссылку на объект $wpdb. Также добавлена ​​недостающая цитата. Попробуйте сейчас. - person Pat; 23.12.2011
comment
Это странно - в прошлом у меня работало выше. Можете ли вы var_dump $where var посмотреть, что в нем содержится (вероятно, здесь не поможет хвататься за соломинку :) - person Pat; 23.12.2011
comment
Я уже нашел другое решение. В любом случае, спасибо за помощь, Пэт! - person Rik de Vos; 23.12.2011
comment
глобальный $wpdb; должно быть внутри функции - person loQ; 15.07.2013
comment
В последней строке отсутствует знак доллара return $where; - person rmorse; 26.05.2014
comment
Спасибо @acSlater - добавил отсутствующий $ - person Pat; 28.05.2014