我想使用”
自定义”
字段制作一个搜索表单, 可以搜索表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 =键名” 。
推荐阅读
- wp_redirect进入无限循环
- wp_query-限制od帖子和页面的数量
- REST API中的WP分页
- WP Media Gallery Metabox无法读取未定义的属性”状态”
- wp_nav_menu插入ul,无法设置类或避免找到
- #私藏项目实操分享# go gin使用自定义中间件
- Linux进程和计划任务管理
- #yyds干货盘点# 性能问题分析策略
- Java 新的日期时间 API#yyds干货盘点#