Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在WP_查询之前检查变量是否不为空_Php_Wordpress - Fatal编程技术网

Php 在WP_查询之前检查变量是否不为空

Php 在WP_查询之前检查变量是否不为空,php,wordpress,Php,Wordpress,在进行wp查询之前,我想测试$\u GETvarriable是否为空。我试过这个: ($miesto_name != '' ? "array('key' => 'miestas', 'value' => $miesto_name)," : '') 在arrgs中: $args=array( 'post_type' => $type, 'posts_per_page' => 32, 'paged' => $paged, 'post_s

在进行wp查询之前,我想测试
$\u 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…

这应该可以

$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
    )
);

您可以简单地使用PHP中的函数,它可以做一些事情

  • 检查
    $\u GET
    变量是否存在

  • 如果找到,则返回值,否则返回false

  • 设置筛选器时清理/验证该值

您应该注意,您应该永远不要使用任何
$\u GET
变量中的非净化/非验证数据(这也适用于站点中的任何其他输入,如
$\u POST
和表单字段)。这是黑客用来将恶意代码按顺序注入站点的最常用位置,因此,如果您不希望您的站点被黑客攻击,始终对进入站点的任何数据进行SANTIZE/VALIDATE/ESCAPE并且永远不要信任任何人,甚至是您自己

如果您的
$\u GET
值预期为字符串,则只需执行以下操作(根据预期的数据类型调整过滤器)


出于好奇,如果它的计算结果为false,它会插入占位符吗?您应该使用
==
$miesto_name!==''?数组('key'=>'miestas','value'=>$miesto_name),:''
发布了一个答案,但从未使用过未消毒的
$\u GET
变量值。这是用于向站点注入恶意代码的头号位置我同意,让我们告诉OP清除
$\u GET
$value = filter_input( INPUT_GET, 'name_of_key', FILTER_SANITIZE_STRING );
var_dump( $value );