wp_query多个元键

我想使用” 自定义” 字段制作一个搜索表单, 可以搜索表postmeta显示报价和信息搜索, 在本地主机中键入代码, 但是该站点无法加载我使用XAMPP是什么问题?
这是我的代码

< ?php $args = array( 'post_type' => 'house', 'meta_query' => array( array( 'key' => 'city', 'value' => $_GET["city"], 'compare' => 'LIKE', ), array( 'key' => 'part', 'value' => $_GET["part"], 'compare' => 'LIKE', ), array( 'key' => 'statuss', 'value' => $_GET["statuss"], 'compare' => 'LIKE', ), array( 'key' => 'typee', 'value' => $_GET["typee"], 'compare' => 'LIKE', ), array( 'key' => 'statuss', 'value' => $_GET["statuss"], 'compare' => 'LIKE', ), array( 'key' => 'rooms', 'value' => $_GET["rooms"], 'compare' => 'LIKE', ), array( 'key' => 'wcss', 'value' => $_GET["wcss"], 'compare' => 'LIKE', ), array( 'key' => 'metr', 'value' => $_GET["metr"], 'compare' => 'LIKE', ), array( 'key' => 'minip', 'value' => $_GET["minip"], 'compare' => 'LIKE', ), array( 'key' => 'maxp', 'value' => $_GET["maxp"], 'compare' => 'LIKE', ), array( 'key' => 'tabaghe', 'value' => $_GET["tabaghe"], 'compare' => 'LIKE', ), array( 'key' => 'rahn', 'value' => $_GET["rahn"], 'compare' => 'LIKE', ), array( 'key' => 'ejareh', 'value' => $_GET["ejareh"], 'compare' => 'LIKE', ) ) ); $all_posts = new WP_Query($args); if ($all_posts-> have_posts()) :?> < div class="titSearchHouse" style="text-align: center; width: 150px; margin: 12px auto 0; background: #d0d0d0; color: #FFFFFF; font-family: 'B Yekan'; padding: 10px"> display results < /div> < div class="parti"> < ?php while ($all_posts-> have_posts()):$all_posts-> the_post(); ?> < !--start post wrapper--> < a class="post-link" href="http://www.srcmini.com/< ?php echo get_the_permalink(); ?>"> < div class="post wow fadeInUp"> < div class="post-inner"> < div class="post-thumb"> < ?php echo get_the_post_thumbnail($all_posts-> post-> ID, 'main-thumbnail'); ?> < /div> < span class="post-title"> < ?php echo get_the_title($all_posts-> post-> ID); ?> < /span> < /div> < div class="post-meta"> < span> < i class="fa fa-clock-o"> < /i> < ?php echo get_the_date('Y-m-d', $all_posts-> post-> ID); ?> < /span> < span> < i class="fa fa-user"> < /i> < ?php echo get_the_author(); ?> < /span> < span> < i class="fa fa-thumbs-o-up"> < /i> 506< /span> < /div> < /div> < /a> < !--end post wrapper--> < ?php endwhile; ?> < /div> wp_reset_postdata(); < ?php endif; ?>

谢谢
#1你缺少查询的关系部分, 我不确定这不是唯一的问题, 但看起来应该像这样:
$args = array( 'post_type' => 'house', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'city', 'value' => $_GET["city"], 'compare' => 'LIKE', ), array( 'key' => 'part', 'value' => $_GET["part"], 'compare' => 'LIKE', ), array..... etc,

希望这可以帮助
#2这可能在游戏中有些晚, 但是查看代码可能未得到任何结果, 因为尚未定义查询之间的关系。默认情况下, WP_Query使用’ relation’ => ’ AND’ 比较查询的元数据, 这意味着必须在数据库中找到元数据的每一位, 以便查询返回结果, 因此, 如果出于某种原因或其他原因即使在数据库中找不到一个查询数据(或未成功发送到查询), 它也将返回负结果(或在你的情况下不返回任何结果)。
简而言之, 如果要查找非常特定的查询结果(元数据的所有位都应与查询匹配), 则应使用AND运算符;否则, 如果要查找更通用的内容(则应使用OR运算符)将匹配一个元查询或另一个元查询, 或另一个, 依此类推-你就会明白)。我还将确保添加一个否定结果标志, 以便你至少可以首先查看查询是否已发送(和返回)。
考虑到以上几点, 更改后的查询版本将类似于:
< ?php $args = array( 'post_type' => 'house', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'city', 'value' => $_GET["city"], 'compare' => 'LIKE', ), array( 'key' => 'part', 'value' => $_GET["part"], 'compare' => 'LIKE', ), array( 'key' => 'statuss', 'value' => $_GET["statuss"], 'compare' => 'LIKE', ), array( 'key' => 'typee', 'value' => $_GET["typee"], 'compare' => 'LIKE', ), array( 'key' => 'statuss', 'value' => $_GET["statuss"], 'compare' => 'LIKE', ), array( 'key' => 'rooms', 'value' => $_GET["rooms"], 'compare' => 'LIKE', ), array( 'key' => 'wcss', 'value' => $_GET["wcss"], 'compare' => 'LIKE', ), array( 'key' => 'metr', 'value' => $_GET["metr"], 'compare' => 'LIKE', ), array( 'key' => 'minip', 'value' => $_GET["minip"], 'compare' => 'LIKE', ), array( 'key' => 'maxp', 'value' => $_GET["maxp"], 'compare' => 'LIKE', ), array( 'key' => 'tabaghe', 'value' => $_GET["tabaghe"], 'compare' => 'LIKE', ), array( 'key' => 'rahn', 'value' => $_GET["rahn"], 'compare' => 'LIKE', ), array( 'key' => 'ejareh', 'value' => $_GET["ejareh"], 'compare' => 'LIKE', ) )); $all_posts = new WP_Query($args); if ($all_posts-> have_posts()): ?> < div class="titSearchHouse" style="text-align: center; width: 150px; margin: 12px auto; background: #d0d0d0; color: #FFFFFF; font-family: 'B Yekan'; padding: 10px"> display results < /div> < div class="parti"> < ?php while ($all_posts-> have_posts()):$all_posts-> the_post(); ?> < !--start post wrapper--> < a class="post-link" href="http://www.srcmini.com/< ?php echo get_the_permalink(); ?>"> < div class="post wow fadeInUp"> < div class="post-inner"> < div class="post-thumb"> < ?php echo get_the_post_thumbnail($all_posts-> post-> ID, 'main-thumbnail'); ?> < /div> < span class="post-title"> < ?php echo get_the_title($all_posts-> post- > ID); ?> < /span> < /div> < div class="post-meta"> < span> < i class="fa fa-clock- o"> < /i> < ?php echo get_the_date('Y-m-d', $all_posts-> post-> ID); ?> < /span> < span> < i class="fa fa-user"> < /i> < ?php echo get_the_author(); ?> < /span> < span> < i class="fa fa-thumbs-o-up"> < /i> 506< /span> < /div> < /div> < /a> < !--end post wrapper--> < ?php endwhile; ?> < /div> < ?php wp_reset_postdata(); ?> < ?php < !--add some error text to your query so that you at least know whether or not the query is working--> else: ?> Sorry, no results match your query parameters.< ?php endif; ?>

最好使用OR运算符作为初始查询的开始, 特别是在你遇到诸如此类的复杂查询时。这样, 你实际上可以查看是否至少返回了一些结果, 并清除了任何潜在的错误。同样, 使用$ _GET或$ _POST数据, 检查$ _GET / $ _ POST变量是否确实包含有效数据始终是一个好主意, 否则, 你将不得不长时间摸索。
希望这对某人有帮助!干杯。
#3
< ?php $args = array( 'post_type' => 'house', 'meta_key' => {keyname}, < -!!!!!!!!!!!!!!!!!! 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'city', 'value' => $_GET["city"], 'compare' => 'LIKE', ), ... ?>

【wp_query多个元键】你忘记在查询中放置meta_key了!
根据https://developer.wordpress.org/reference/classes/wp_query/:
” meta_value” -请注意, 查询中还必须存在” meta_key =键名” 。

    推荐阅读