मुझे लगता है कि कुछ इस तरह से आप खुद लिख रहे होंगे।
पर एक नज़र डालें: http://www.catalysthomes.co.uk/homes-for-sale/
गुण CPT में लोड किए गए हैं और साइडबार में मेरी अपनी कस्टम खोज है। उसमें से कई चीजों को खोजना जैसे कि टैक्सोनोमी, कस्टम फील्ड और ऑर्डर ऑफ डेट प्राइस आदि।
तो मैं इसे कैसे प्राप्त करूं? मैं प्रपत्र को एक पेज टेम्प्लेट में प्रस्तुत करता हूं और वहां से मैं पोस्ट डेटा से निपटता हूं और खोज मानदंडों के आधार पर एक नया WP_query बनाता हूं। मैं सत्रों का उपयोग खोज चर को संग्रहीत करने के लिए करता हूं ताकि मैं परिणामों को पृष्ठांकित कर सकूं।
WP_Query बहुत शक्तिशाली है। देखिए: http://codex.wordpress.org/Class_Reference/WP_Query
वहां आप meta_query
कई कस्टम फ़ील्ड को क्वेरी करने के लिए उपयोग कर सकते हैं और tax_query
अपनी टैक्सोनॉमी को क्वेरी करने के लिए उपयोग कर सकते हैं , इसके अलावा और भी बहुत कुछ है। नीचे बताया गया है कि कैसे मेरा निर्माण आपको एक विचार देने के लिए किया गया है।
टेम्पलेट फ़ाइल:
<?php
$temp = $wp_query;
$wp_query = NULL;
$args = array();
?>
<?php include("functions/Homes-for-sale/propertyrawresults.php"); ?>
<?php include("functions/Homes-for-sale/propertysearchresults.php"); ?>
<?php
$args['post_type'] = "homes-for-sale";
$args['showposts'] = 10;
$args['paged'] = $paged;
$wp_query = new WP_Query($args);
?>
<?php include("functions/Homes-for-sale/propertylistlayout.php"); ?>
कच्चे परिणाम
<?php
if($_POST['sortby']) {
$_SESSION['prop_selectedsortby'] = $_POST['sortby'];
}
switch($_SESSION['prop_selectedsortby']) {
case "name-asc": $args['order'] = "ASC"; $args['orderby'] = "title"; break;
case "name-desc": $args['orderby'] = "title"; break;
case "price-asc": $args['order'] = "ASC"; $args['orderby'] = "meta_value_num"; $args['meta_key'] = "chb_homes_for_sale_specifics_fmv"; break;
case "price-desc": $args['orderby'] = "meta_value_num"; $args['meta_key'] = "chb_homes_for_sale_specifics_fmv"; break;
case "date-asc": $args['order'] = "ASC"; break;
default: /* No need to set arguments here as wp query defaults */ break;
}
$selectedsortby[$_SESSION['prop_selectedsortby']] = " selected=\"selected\"";
?>
खोज परिणाम
<?php
if( ! empty( $_SESSION['s_property_ptype'] ) ) {
$args['meta_query'][] = array(
'key' => 'chb_homes_for_sale_types_nbrs',
'value' => $_SESSION['s_property_ptype']
);
}
if( ! empty( $_SESSION['s_property_development'] ) ) {
$args['meta_query'][] = array(
'key' => 'chb_homes_for_sale_ofdevelopment',
'value' => $_SESSION['s_property_development']
);
}
if( isset( $_SESSION['s_property_area'] ) && 0 != $_SESSION['s_property_area'] ) {
$args['tax_query'][] = array(
'taxonomy' => 'areas',
'field' => 'id',
'terms' => array( (int) $_SESSION['s_property_area'] ),
);
}
$args['meta_query'][] = array(
'key' => 'chb_homes_for_sale_specifics_bedrooms',
'value' => $_SESSION['s_property_bedrooms_min'],
'compare' => '>=',
'type' => 'SIGNED'
);
$args['meta_query'][] = array(
'key' => 'chb_homes_for_sale_specifics_bedrooms',
'value' => $_SESSION['s_property_bedrooms_max'],
'compare' => '<=',
'type' => 'SIGNED'
);
$args['meta_query'][] = array(
'key' => 'chb_homes_for_sale_specifics_bathrooms',
'value' => $_SESSION['s_property_bathrooms_min'],
'compare' => '>=',
'type' => 'SIGNED'
);
$args['meta_query'][] = array(
'key' => 'chb_homes_for_sale_specifics_bathrooms',
'value' => $_SESSION['s_property_bathrooms_max'],
'compare' => '<=',
'type' => 'SIGNED'
);
$args['meta_query'][] = array(
'key' => 'chb_homes_for_sale_specifics_fmv',
'value' => $_SESSION['s_property_min_price'],
'compare' => '>=',
'type' => 'SIGNED'
);
$args['meta_query'][] = array(
'key' => 'chb_homes_for_sale_specifics_fmv',
'value' => $_SESSION['s_property_max_price'],
'compare' => '<=',
'type' => 'SIGNED'
);
?>
सूची लेआउट
पोस्ट अंश और जानकारी दिखाने के लिए बस एक मानक WP पाश।