ADD_QUERY_ARG()和内部变量为空

时间:2019-08-26 作者:manandman

我有链接:

<a href="\'.esc_url(add_query_arg(array(\'search\' => $search, \'category\' => $category, \'filter\' => $filter), \'/site\')).\'">Click</a>
有些变量有时存在,有时不存在,比如$filter,它有时不存在。现在我希望该变量不存在,它不会出现在链接中,因为调试器会显示通知“Undefined variable”。

如何正确编码?

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

您可以先实例化数组,也可以选择填充它,然后将其传递给add_query_arg() 功能如下:

$url_query_args = array();

if( isset( $search ) ) {
    $url_query_args[\'search\'] = $search;
}

if( isset( $category ) ) {
    $url_query_args[\'category\'] = $category;
}

if( isset( $filter ) ) {
    $url_query_args[\'filter\'] = $filter;
}

esc_url( add_query_arg( $url_query_args, \'/site\' ) );
或者,您可以循环使用可能的查询参数数组:

$url_query_args = array();
$possible_args  = array(
    \'search\',
    \'category\',
    \'filter\',
);

foreach( $possible_args as $arg ) {

    if( ! isset( ${$arg} ) ) {
        continue;
    }

    $url_query_args[ $arg ] = ${$arg};

}

esc_url( add_query_arg( $url_query_args, \'/site\' ) );