এখানে কিছু দুর্বল সমাধান পোস্ট করার সাথে আমি কিছুটা সরলীকৃত এবং স্যানিটাইজড সংস্করণ নিয়ে এসেছি।
প্রথমত, আমরা posts_where
ফিল্টারটির জন্য একটি ফাংশন তৈরি করি যা আপনাকে কেবল নির্দিষ্ট শর্তগুলির সাথে মেলে এমন পোস্টগুলি দেখানোর অনুমতি দেয়:
function cc_post_title_filter($where, &$wp_query) {
global $wpdb;
if ( $search_term = $wp_query->get( 'cc_search_post_title' ) ) {
$where .= ' AND ' . $wpdb->posts . '.post_title LIKE \'%' . $wpdb->esc_like( $search_term ) . '%\'';
}
return $where;
}
এখন আমরা cc_search_post_title
আমাদের জিজ্ঞাসা যুক্তি যুক্ত করুন:
$args = array(
'cc_search_post_title' => $search_term, // search post title only
'post_status' => 'publish',
);
এবং অবশেষে ক্যোয়ারির চারপাশে ফিল্টারটি মোড়ানো:
add_filter( 'posts_where', 'cc_post_title_filter', 10, 2 );
$query = new WP_Query($args);
remove_filter( 'posts_where', 'cc_post_title_filter', 10 );
Get_posts ব্যবহার করে ()
পোস্টগুলি পুনরুদ্ধার করে এমন কিছু নির্দিষ্ট ফাংশন ফিল্টার চালায় না, সুতরাং পোস্টগুলি যেখানেই আপনি সংযুক্ত করেন ফিল্টার ফাংশনগুলি কোয়েরিটি পরিবর্তন করবে না। আপনি যদি get_posts()
আপনার পোস্টগুলি জিজ্ঞাসা করতে ব্যবহার করার পরিকল্পনা suppress_filters
করেন তবে আপনার যুক্তি অ্যারেতে আপনাকে মিথ্যাতে সেট করতে হবে:
$args = array(
'cc_search_post_title' => $search_term,
'suppress_filters' => FALSE,
'post_status' => 'publish',
);
এখন আপনি ব্যবহার করতে পারেন get_posts()
:
add_filter( 'posts_where', 'cc_post_title_filter', 10, 2 );
$posts = get_posts($args);
remove_filter( 'posts_where', 'cc_post_title_filter', 10 );
s
পরামিতি সম্পর্কে কি ?
s
পরামিতি পাওয়া যায়:
$args = array(
's' => $search_term,
);
আপনার অনুসন্ধান শব্দ যোগ করার সময় s
প্যারামিটার কাজ এবং এটি পোস্টের শিরোনাম অনুসন্ধান করবে, এটা হবে আরো পোস্ট করা বিষয়বস্তু অনুসন্ধান।
title
ডাব্লুপিপি ৪.৪ যোগ করা প্যারামিটার সম্পর্কে কী বলা যায় ?
title
প্যারামিটারে একটি অনুসন্ধান শব্দটি পাস করা :
$args = array(
'title' => $search_term,
);
কেস সংবেদনশীল এবং LIKE
না %LIKE%
। এর অর্থ অনুসন্ধানটি hello
শিরোনাম সহ পোস্টটি ফিরবে না Hello World
বা Hello
।
$wpdb->prepare()
।