GET为空时的数组WordPress

时间:2021-04-29 作者:tom

我已将此代码设置为管理wordpress中帖子页面列表中的过滤器。如果所有变量都不为null,则运行此筛选器,如下所示:?类型=公寓和;面积=基安蒂;价格=A

但当其中一个为空时,代码会给我一个空结果。我如何修复?

if(isset($type_search) OR isset($area_search)  OR isset($prezzo_search)) {
    $posts = get_posts(array(
        \'posts_per_page\'    => -1,
        \'meta_query\'    => array(
            \'relation\'      => \'AND\',
            array(
                \'relation\' => \'AND\',
                array(
                    \'key\'       => \'villa_type_buy\',
                    \'value\'     => $type_search,
                    \'compare\'   => \'=\'
                ),
                array(
                    \'key\'       => \'Area\',
                    \'value\'     => $area_search,
                    \'compare\'   => \'=\'
                )
            ),
            array(
                \'key\'       => \'price_buy\',
                \'value\'     => array( $start_price, $end_price ),
                \'type\' => \'numeric\',
                \'compare\'   => \'BETWEEN\'
            )
        )
    ));
}

1 个回复
SO网友:Antti Koskinen

一种选择是使用PHP函数empty() 以及AND / && 操作员生成您的if 检查以确保所有必需的参数都存在。

if (
    ! empty( $type_search ) &&
    ! empty( $area_search ) &&
    ! empty( $prezzo_search ) &&
) {

    // your ocde
    
}
P.s.类型和区域是使用自定义分类法和术语而不是post meta的绝佳机会,前提是它们只能有一个或多个预先定义的值,并且用于将帖子分组在一起。使用自定义分类法可以为您提供更好的性能,更多信息,例如,https://tomjn.com/2016/12/05/post-meta-abuse/ (不是我写的)

相关推荐

Error in "class-wp-hook.php"

我遇到了这个错误,有人能帮我解决吗?警告:call\\u user\\u func\\u array()要求参数1为有效回调,在C:\\Users\\Alex\\Local Sites\\proba2\\app\\public\\wp includes\\class wp hook中未找到函数“wp\\u schedule\\u https\\u detection”,或函数名无效。php在线292提前感谢!!!