使用POSTS_WHERE挂接时的卫生处理

时间:2011-11-01 作者:Stephen Harris

我正在修改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;
}
这很有效,但我想sanitize 信息技术特别是,我尝试使用$wpdb->prepare() 方法:

$where .= $wpdb->prepare(" AND wp_MyTable.Column = %s", $custom_Var);
但这不起作用(我只得到一张空白页)。为什么会这样?是否有其他/更好的方法来清理变量?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

您的最后一个prepare() 代码段应该可以正常工作,请检查$wpdb 在函数中声明为全局。

此外,空白页似乎极端,启用WP_DEBUG 如果还没有,请查看是否有任何特定错误导致它。

结束

相关推荐