Intereting Posts

Санитация при использовании posts_where hook

Я posts_where запрос 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); 

Но это не работает (я просто получаю пустую страницу). Почему это и есть другой / лучший способ дезинфекции переменной?

Ваш последний фрагмент prepare() должен работать нормально, убедитесь, что у вас $wpdb объявлено глобальным в вашей функции.

Кроме того, пустая страница кажется экстремальной, включите WP_DEBUG если она еще не установлена, и посмотрите, есть ли какие-либо конкретные ошибки, вызывающие ее.