উত্তর:
এই 2 ফাংশন আপনার ফাংশন.এফপি যোগ করুন
function search_excerpt_highlight() {
$excerpt = get_the_excerpt();
$keys = implode('|', explode(' ', get_search_query()));
$excerpt = preg_replace('/(' . $keys .')/iu', '<strong class="search-highlight">\0</strong>', $excerpt);
echo '<p>' . $excerpt . '</p>';
}
function search_title_highlight() {
$title = get_the_title();
$keys = implode('|', explode(' ', get_search_query()));
$title = preg_replace('/(' . $keys .')/iu', '<strong class="search-highlight">\0</strong>', $title);
echo $title;
}
আপনার অনুসন্ধানের ফলাফলের জন্য_সামগ্রী ব্যবহার করতে নীচের ফাংশনটি ব্যবহার করুন:
function search_content_highlight() {
$content = get_the_content();
$keys = implode('|', explode(' ', get_search_query()));
$content = preg_replace('/(' . $keys .')/iu', '<strong class="search-highlight">\0</strong>', $content);
echo '<p>' . $content . '</p>';
}
আপনার লুপে বা অনুসন্ধানের <?php search_title_highlight(); ?>
পরিবর্তে ফাইল কল করুন <?php the_title(); ?>
এবং এর <?php search_excerpt_highlight(); ?>
পরিবর্তে ব্যবহার করুন<?php the_excerpt(); ?>
আপনার সিএসএসে অনুসন্ধান-হাইলাইট শ্রেণি যুক্ত করুন যা সমস্ত অনুসন্ধান শব্দকে হলুদে হাইলাইট করবে।
.search-highlight {
background:#FFFF00
}
the_excerpt
এবং the_content
তার জন্য ফিল্টার হওয়া উচিত । যাইহোক: দুর্দান্ত উত্তর, তবে @ জিয়ার্টের মন্তব্যটিতে কাজ করা যেতে পারে :)
উপরেরটি ভালভাবে কাজ করে আমি একই কোডটি চালিয়েছি, তবে শিরোনাম এবং অংশটি এক সাথে বেঁধেছি। কিন্তু যখন অনুসন্ধান অনুসন্ধান শব্দের শুরুর বা শেষের দিকে কেউ একটি স্পেসে প্রবেশ করে তখন এটি ভেঙে যায়।
সুতরাং আমি এই লাইন যুক্ত করুন:
$keys = array_filter($keys);
// Add Bold to searched term
function highlight_results($text){
if(is_search() && !is_admin()){
$sr = get_query_var('s');
$keys = explode(" ",$sr);
$keys = array_filter($keys);
$text = preg_replace('/('.implode('|', $keys) .')/iu', ''.$sr.'', $text);
}
return $text;
}
add_filter('the_excerpt', 'highlight_results');
add_filter('the_title', 'highlight_results');
আশা করি এটি অন্যকে সহায়তা করবে।
উপরের সমাধানগুলি যদি এইচটিএমএল ট্যাগের মধ্যে অনুসন্ধান শব্দটি উপস্থিত হয় তবে পৃষ্ঠাটি ভেঙে যায়। আপনার কিছু ব্যবহার করা উচিত:
$regEx = '\'(?!((<.*?)|(<a.*?)))(\b'. implode('|', $keys) . '\b)(?!(([^<>]*?)>)|([^>]*?</a>))\'iu';
$text = preg_replace($regEx, '<strong class="search-highlight">\0</strong>', $text);
preg_quote()
দেওয়ার$keys
জন্য প্রয়োগ করুন ।