さまざまな建物のフロアを検索するために使用される Wordpress カスタム検索フォームがあります。たとえば、ユーザーが 1000 ~ 1500 平方フィートのフロアを検索すると、それらの値の間に空きフロア スペースがあるすべての建物のリストが表示されます。
検索値は、単一の建物ページで必要になるため、Cookie 内に保存されます。
単一の建物のページには、ユーザーの検索条件に一致するフロアを示すセクションがあります。
少し前に追加した床とうまく機能します。新しいフロアを追加すると、単一の建物のページに表示されません
それは何でしょうか?一致するフロアを単一の建物ページに表示するために作成したコードは次のとおりです。
<table class="table" id="tab1C">
<?php include( get_template_directory().'/inc/function-search.php' );
$categories = get_the_category();
$category_id = $categories[0]->cat_name;
$args = array(
'meta_query' => array(
$sq_array,
$mt_array,
$prelet_array,
$date_array,
),
'category_name' => $category_id,
);
$i = 0;
$search = array_merge($args);
$propertySearch = new WP_Query( $search ); ?>
<?php $terms = get_the_terms( get_the_ID(), 'category');
if( !empty($terms) ) : $term = array_pop($terms); ?>
<?php if( $propertySearch->have_posts() ) : while( $propertySearch->have_posts() ) : $propertySearch->the_post(); ?>
<?php get_template_part( 'content', 'table' ); ?>
<?php $i++; ?>
<?php endwhile; endif;
wp_reset_postdata(); ?>
<?php endif; ?>
</table>
これは function-search.php インクルードです
<?php
$_minsq = $_GET['minsq'] != '' ? $_GET['minsq'] : '';
$_maxsq = $_GET['maxsq'] != '' ? $_GET['maxsq'] : '';
$_minmt = $_GET['minmt'] != '' ? $_GET['minmt'] : '';
$_maxmt = $_GET['maxmt'] != '' ? $_GET['maxmt'] : '';
$unit = $_GET['unit'] != '' ? $_GET['unit'] : '';
$prelet = $_GET['prelet'] != '' ? $_GET['prelet'] : '';
$date = $_GET['date'] != '' ? $_GET['date'] : '';
$sorter = $_GET['sorter'] != '' ? $_GET['sorter'] : '';
$sq_array = array();
$mt_array = array();
$prelet_array = array();
$date_array = array();
$sorter_array = array();
if ( isset( $_COOKIE["unit"] )){
if ($_COOKIE["unit"] == "ft") {
if ( isset( $_COOKIE["minsq"] )){
$value_min = intval( $_COOKIE["minsq"] );
//update_post_meta( $post->ID, 'wpcf-square-feet', $value_min );
}
if ( isset( $_COOKIE["maxsq"] )){
$value_max = intval( $_COOKIE["maxsq"] );
//update_post_meta( $post->ID, 'wpcf-square-feet', $value_max );
}
$sq_array = array(
array (
'key' => 'wpcf-square-feet',
'value' => array( $value_min, $value_max ),
'type' => 'numeric',
'compare' => 'BETWEEN',
),
array(
'key' => 'wpcf-square-feet',
'value' => $value_min,
'type' => 'numeric',
'compare' => '>=',
),
array(
'key' => 'wpcf-square-feet',
'value' => $value_max,
'type' => 'numeric',
'compare' => '<=',
)
);
} elseif ($_COOKIE["unit"] == "mt") {
if ( isset( $_COOKIE["minmt"] )){
$value_minmt = intval( $_COOKIE["minmt"] );
//update_post_meta( $post->ID, 'wpcf-square-meters', $value_minmt );
}
if ( isset( $_COOKIE["maxmt"] )){
$value_maxmt = intval( $_COOKIE["maxmt"] );
//update_post_meta( $post->ID, 'wpcf-square-meters', $value_maxmt );
}
$mt_array = array(
array (
'key' => 'wpcf-square-meters',
'value' => array( $value_minmt, $value_maxmt ),
'type' => 'numeric',
'compare' => 'BETWEEN',
),
array(
'key' => 'wpcf-square-meters',
'value' => $value_minmt,
'type' => 'numeric',
'compare' => '>=',
),
array(
'key' => 'wpcf-square-meters',
'value' => $value_maxmt,
'type' => 'numeric',
'compare' => '<=',
)
);
}
}
if ( isset( $_COOKIE["prelet"] )){
if ($_COOKIE["prelet"] != "yes") {
$value_prelet = 2;
//update_post_meta( $post->ID, 'wpcf-prelet', $value_prelet );
$prelet_array = array(
'key' => 'wpcf-prelet',
'value' => $value_prelet,
'type' => 'numeric',
'compare' => '=',
);
}
};
if ( isset( $_COOKIE["date"] ) && $date != ""){
$value_date = intval( $_COOKIE["date"] );
//update_post_meta( $post->ID, 'wpcf-completition-date', $value_date );
$date_array = array(
'key' => 'wpcf-completition-date',
'value' => $value_date,
'type' => 'numeric',
'compare' => '=',
);
};
if ( isset( $sorter )){
if ($sorter == "0") {
$sorter_array = array(
'meta_key' => 'wpcf-square-feet',
'orderby' => 'meta_value_num',
'order' => 'DESC'
);
} elseif ($sorter == "1") {
$sorter_array = array(
'meta_key' => 'wpcf-square-feet',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
}
}
?>
これは、フロアが表示される単一の建物ページです
これはフロアが表示されない 1 つの建物のページです
どちらも同じコードを使用し、同じ検索基準を持っていますが、新しく追加されたフロアでは機能しません。
これがすべて理にかなっていて、私を助けてくれる良い魂があることを願っています. 明日の朝、英国時間の午前 9 時までにこれを配達する必要があり、一日中修正しようとしましたが、成功しませんでした。助けていただければ幸いです、ありがとう。