Дезинфекция при использовании столбов, где крючок
Я изменяю запрос WordPress, используя крючок posts_where
, когда (пользовательская) переменная запроса установлена следующим образом:
add_filter('posts_where', 'my_posts_where' );
function my_posts_where( $where ){
global $wp_query;
if( isset( $wp_query->query_vars['customvar'] )) {
$custom_Var = $wp_query->query_vars['customvar'];
$where .= " AND wp_MyTable.Column ='".$custom_Var."' ";
}
return $where;
}
Это хорошо работает, но я хочу очистить это. В частности, я пробовал использовать метод $wpdb->prepare()
:
$where .= $wpdb->prepare(" AND wp_MyTable.Column = %s", $custom_Var);
Но это не работает (я просто получаю пустую страницу). Почему это так и есть ли другой/лучший способ очистки переменной?
3
Author: Stephen Harris, 2011-11-01
1 answers
Ваш последний фрагмент prepare()
должен работать нормально, убедитесь, что в вашей функции $wpdb
объявлен глобальным.
Также пустая страница кажется экстремальной, включите WP_DEBUG
, если еще нет, и посмотрите, есть ли какие-либо конкретные ошибки, которые ее вызывают.
1
Author: Rarst, 2011-11-01 19:41:35