我想根据通过 URL: 传递的查询参数显示数据https://example.com/?make=nike&model=shox&colour=white&body_type=slim
。
我可以通过访问来浏览“耐克”股票
https://example.com/?make=nike
。我可以通过访问来浏览“nike shox”
https://example.com/?make=nike&model=shox
。我无法浏览“nike shox white”
https://example.com/?make=nike&model=shox&colour=white
,因为我得到了与查询无关的混合结果。我无法浏览“nike shox white slim”
https://example.com/?make=nike&model=shox&colour=white&body_type=slim
,因为我得到了与查询无关的混合结果。我可以访问 "white"
https://example.com/?colour=white
。我可以访问 "slim"
https://example.com/?body_type=slim
。
我正在使用以下代码:
if ( isset( $query->query_vars['post_type'] ) && $query->query_vars['post_type'] == 'post' ) {
// allow the url to alter the query
if ( isset( $_GET['make'] ) ) {
$query->set( 'meta_key', 'make' );
$query->set( 'meta_value', $_GET['make'] );
}
if ( isset( $_GET['model'] ) ) {
$query->set( 'meta_key', 'model' );
$query->set( 'meta_value', $_GET['model'] );
}
if ( isset( $_GET['colour'] ) ) {
$query->set( 'meta_key', 'colour' );
$query->set( 'meta_value', $_GET['colour'] );
}
if ( isset( $_GET['body_type'] ) ) {
$query->set( 'meta_key', 'body_type' );
$query->set( 'meta_value', $_GET['body_type'] );
}
}
我究竟做错了什么?干杯!