কাস্টম ট্যাক্সনোমিজ এবং কাস্টম ক্ষেত্রগুলির জন্য ফিল্টার সহ উন্নত অনুসন্ধান ফর্ম


30

আমি একটি নির্দিষ্ট কাস্টম পোস্ট ধরণের জন্য কাস্টম পোস্ট প্রকারের কাস্টম ক্ষেত্র, কাস্টম ট্যাক্সনোমিজ এবং পৃথক কাস্টম পোস্ট ধরণের বৈশিষ্ট্যগুলির জন্য ফিল্ডার (ক্ষেত্র এবং করশোণাদি) তৈরি করতে চাই যা প্রথমটির লিঙ্ক হবে কাস্টম সম্পর্ক ক্ষেত্র ব্যবহার করে পোস্টের ধরণ।

আমি সম্প্রতি ডাব্লুপিএস কাস্টম পোস্টের ধরণ, ক্ষেত্র এবং কর বিভাগগুলি দিয়ে শুরু করেছি, আমি এটিকে এখনও পছন্দ করি তবে এর সেরাটি তৈরি করতে আমি এটি সঠিকভাবে অনুসন্ধান করতে সক্ষম হতে চাই। আমার নিজে এটি করা দরকার? যদি তাই হয়, কিভাবে?

গীত। যদি এটি গুরুত্বপূর্ণ হয় তবে আমি প্লাগইনগুলি ব্যবহার করছি: উন্নত কাস্টম ক্ষেত্র এবং কাস্টম পোস্ট প্রকারের UI

ফিল্টারিংটি দেখতে কেমন হবে এবং এটি উপরের পোস্টের ধরণের সাথে কীভাবে সম্পর্কিত হতে পারে তার একটি উদাহরণ নীচে আমি উপহাস করেছি।

ওয়ার্ডপ্রেস কাস্টম অনুসন্ধান ফর্মটি কাস্টম ক্ষেত্র এবং কাস্টম ট্যাক্সনোমিজ দ্বারা ফিল্টার করা হয়েছে


যদি কারও উপরে ব্র্যাডির সমাধানটি প্রয়োগ করতে সমস্যা হয় (যেমনটি আমি এখানে করেছি) এখানে একটি ইঙ্গিত দেওয়া আছে: মনে হচ্ছে ওয়ার্ডপ্রেসের সেশন ডেটা পাস করার ক্ষেত্রে কিছু সমস্যা আছে তাই সম্ভবত এটি সঠিকভাবে কাজ করার জন্য আপনাকে অতিরিক্ত কিছু করতে হবে। বিষয়গুলি এখানে আলোচনা করা হয়েছে: স্পষ্ট-verhoeven.com/using-session-in-wordpress আমার জন্য পিটার ওয়েস্টার এর "সিম্পল সেশন সাপোর্ট" প্লাগইনটি ইনস্টল করে কৌশলটি করেছে। পোস্টের মন্তব্য বিভাগে প্লাগইনে একটি লিঙ্ক রয়েছে।
স্টিভআর

উত্তর:


16

আমি মনে করি এরকম কিছু আপনি নিজেরাই সেরা লিখবেন।

একবার দেখুন: http://www.catalysthomes.co.uk/homes-for-sale/

বৈশিষ্ট্যগুলি একটি সিপিটিতে লোড করা হয় এবং আমার সাইডবারে নিজস্ব কাস্টম অনুসন্ধান রয়েছে। এর মধ্যে এটি অনুসন্ধানের মতো অনেকগুলি বিষয় যেমন ট্যাক্সোনমি, কাস্টম ক্ষেত্র এবং তারিখের দাম অনুসারে ক্রম ইত্যাদি অনুসন্ধান করে

তাহলে আমি কীভাবে এটি অর্জন করব? আমি ফর্মটি কোনও পৃষ্ঠার টেমপ্লেটে জমা দিই এবং সেখান থেকে পোস্ট ডেটা নিয়ে আমি লেনদেন করি এবং অনুসন্ধানের মানদণ্ডের ভিত্তিতে একটি নতুন ডব্লিউপি_উইকি তৈরি করি। আমি অনুসন্ধানের ভেরিয়েবলগুলি সংরক্ষণ করার জন্য সেশনগুলি ব্যবহার করি যাতে আমি ফলাফলগুলি পৃষ্ঠাভুক্ত করতে পারি।

ডাব্লুপিউকিউয়ারি খুব শক্তিশালী। একবার দেখুন: http://codex.wordpress.org/Class_References/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 লুপ।


হাই ব্র্যাডি, উদাহরণস্বরূপ থেক্স। আমি কি আপনাকে জিজ্ঞাসা করতে পারি, সম্ভব হলে, ফর্মটি ভাগ করে নিতে? এটিতে, আপনি কোন URL এ এটি জমা দিচ্ছেন?
সালোকিন

@ সালোসিন - উত্তরের প্রদত্ত ইউআরএলটিতে পৃষ্ঠার উত্সটি দেখে সেই তথ্যটি পাওয়া যাবে
ব্র্যাডি

THX ব্র্যাডি, পৃষ্ঠার টেম্পলেটটির এত url?
সালোকিন

ফর্মটি অনুঘটকযুক্ত.কম। আপনি উত্স দেখতে এবং ফর্মটি কীভাবে কাজ করে তা দেখতে পারেন
ব্র্যাডি

কাস্টম ক্ষেত্র হিসাবে কাস্টম বিভাগের পোস্টগুলি আছে কিনা তা পরীক্ষা করে দেখুন? আপনি ঠিক কীভাবে অনুসন্ধানের ফর্মটি স্থাপন করছেন? @ ব্র্যাডি ধন্যবাদ
ফিল হাডসন

2

রেলেভানসির সাথে একত্রে ট্যাক্সনমি পিকার প্লাগইন ব্যবহার করে দেখুন । হত্যাকারীর সমন্বয়।

http://www.squidoo.com/taxonomy-picker-wordpress-plugin http://wordpress.org/extend/plugins/relevanssi/


এটি পোস্টের সম্পর্কের বিষয়টি বিবেচনা করে না, এটি আমার সমস্যার একটি কঠিন অংশ। ট্যাক্সোনমি দ্বারা পোস্টগুলি ফিল্টার করা সহজ, আমার তাদের সম্পর্কিত কোনও পোস্টের ট্যাক্সনমি (বা কাস্টম ফিল্ড) কিনতে ফিল্টার করা দরকার।
প্যাক্স

0

রিলেভানসি প্লাগইনটি একবার দেখুন, আপনি যা খুঁজছেন তা এটি করতে পারে: http://wordpress.org/extend/plugins/relevanssi/


এটি আমার প্রয়োজনীয় পদ্ধতির (নির্দিষ্ট ফিল্টার সহ) ফিট করে না, তবে এটি একটি খুব আকর্ষণীয় প্লাগইন, এটি ডিফল্ট অনুসন্ধান ফাংশনটির জন্য দুর্দান্ত প্রতিস্থাপনের মতো দেখায়, এটি দেখানোর জন্য অনেক ধন্যবাদ।
প্যাক্স

0

যদি কারও উপরে ব্র্যাডির সমাধানটি প্রয়োগ করতে সমস্যা হয় (যেমনটি আমি এখানে করেছি) এখানে একটি ইঙ্গিত দেওয়া আছে: মনে হচ্ছে ওয়ার্ডপ্রেসটির সেশন ডেটা পাস করার ক্ষেত্রে কিছু সমস্যা আছে তাই সম্ভবত এটি সঠিকভাবে কাজ করার জন্য আপনাকে অতিরিক্ত কিছু করতে হবে। বিষয়গুলি এখানে আলোচনা করা হয়

ফাংশন.এফপি ইন:

function init_sessions() {
  if (!session_id()) {
  session_start();
 }
}
add_action('init', 'init_sessions');

আপনার টেমপ্লেটে:

/**
* Enable sessions
*/
if (!session_id())
session_start();

আমার জন্য পিটার উস্টার এর " সাধারণ সেশন সমর্থন " প্লাগইনটি কৌশলটি সম্পাদন করেছে।


1
হাই স্টিভ. আপনার প্রথম উত্তর এখানে পোস্ট করার জন্য ধন্যবাদ। ডাব্লুপিএসইতে আপনাকে পেয়ে খুশী। ভবিষ্যতের রেফারেন্সের জন্য, উত্তরগুলি কোনও বাহ্যিক লিঙ্কে সম্পূর্ণ পিভট হওয়া উচিত নয়। লিঙ্কটি অক্ষম থাকলে আপনার উত্তরটি সৌম্য হয়ে যায়। আপনার উত্তরটি কীভাবে কয়েকটি নমুনা প্রাসঙ্গিক কোড স্নিপেটের সাথে আপডেট করা আপত্তি করতে চান?
ব্রায়ান ফেগার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.