私はquery_vars
を通して追加されたカスタムクエリ変数を持っています。たとえば、「産業」です。
pre_get_posts
アクションでは、以下のように 'Industry'パラメータに値があれば分類法クエリを構築して追加します。
add_action( 'pre_get_posts', 'alter_posts');
function alter_posts( $q ) {
$tax_query = array();
// industry taxonomy
if ( get_query_var( 'industry' ) ) {
$tax_query[] = array(
'taxonomy' => $my_taxonomy,
'field' => 'slug',
'terms' => get_query_var( 'industry' )
);
}
// set all previously determined values to the query
$q->set( "tax_query", $tax_query );
}
get_query_var( 'industry' )
経由で取得したクエリ変数を正しくエスケープするにはどうすればよいですか?
esc_sql( get_query_var( 'industry' ) )
のように、 esc_sql functionを使用しますか。クエリ変数のエスケープを処理するための正しい方法は何ですか?
ありがとう、ダーシャ
pre_get_posts
アクションの関数はWP_Queryオブジェクトを使用します( http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts )
Get_postsなどの関数、または WP_Query およびWP_User_Queryなどのクラスを使用する場合、 WordPressはデータベースの照会に必要なサニタイズ の処理を行います。ただし、カスタムテーブルからデータを取得する場合、またはデータベースに対して直接SQLクエリを実行する場合は、適切なサニタイズが必要です。
そのため、この場合は、クエリ変数をエスケープする必要はありません。