我想在进行wp查询之前测试$_GET
varriable是否为空。我试过这个:
($miesto_name != '' ? "array('key' => 'miestas', 'value' => $miesto_name)," : '')
在arrgs中:
$args=array(
'post_type' => $type,
'posts_per_page' => 32,
'paged' => $paged,
'post_status' => 'publish',
'order' => 'ASC',
's' => $_GET['paieska'],
'meta_query' => array(
'relation' => 'AND',
($miesto_name != '' ? "array('key' => 'miestas', 'value' => $miesto_name)," : ''),
array(
'key' => 'imones_apskritis',
'value' => $apskritis_name
),
'city_clause' => array(
'key' => 'apmoketa'
)
),
'orderby' => array( 'city_clause' => 'DESC', 'title' => 'ASC' ),
'tax_query' => array(
array(
'taxonomy' => 'veiklos',
'field' => 'term_id',
'terms' => $_GET['veikla'])
)
);
但是这没有用,在进行查询之前还有其他方法可以检查值是否为空?
我真的无法找到办法做到这一点,而且我不想为每种情况创建单独的$ args ...
答案 0 :(得分:1)
这应该
$paieska = isset( $_GET['paieska'] ) ? $_GET['paieska'] : 'Value if Get is Empty';
$veikla = isset( $_GET['veikla'] ) ? $_GET['veikla'] : 'Value if Get is Empty';
$custom_array = !empty( $miesto_name ) ? array('key' => 'miestas', 'value' => $miesto_name) : array();
$args=array(
'post_type' => $type,
'posts_per_page' => 32,
'paged' => $paged,
'post_status' => 'publish',
'order' => 'ASC',
's' => $paieska,
'meta_query' => array(
'relation' => 'AND',
$custom_array,
array(
'key' => 'imones_apskritis',
'value' => $apskritis_name
),
'city_clause' => array(
'key' => 'apmoketa'
)
),
'orderby' => array( 'city_clause' => 'DESC', 'title' => 'ASC' ),
'tax_query' => array(
array(
'taxonomy' => 'veiklos',
'field' => 'term_id',
'terms' => $veikla
)
);
答案 1 :(得分:1)
您可以简单地使用PHP中的filter_input()
函数来完成一些事情
检查$_GET
变量是否存在
如果找到则返回值,否则返回false
设置过滤器时清理/验证值
您应该注意,永远不会使用来自任何$_GET
变量的非经过消毒/未经验证的数据(这也适用于像{{{}这样的网站的任何其他输入1}}和表单字段)。这是黑客用来按顺序将恶意代码注入网站的最喜欢的地方,所以如果你不希望你的网站被黑,总是SANTIZE / VALIDATE / ESCAPE 任何进入网站的数据,从不相信任何人,甚至不相信自己
如果您的$_POST
值预计为字符串(根据预期的数据类型调整过滤器),您可以执行以下操作
$_GET