WordPress वेबसाईट के लिए Live Search बॉक्स कैसे लगाए
आप अपनी wordpress वेबसाईट मे लाइव सर्च बॉक्स लगा सकते हैं । उसके लिए आप नीचे दिए हुए कोड को अपनी theme मे implement कर सकते हैं । तो चलिए step by step सीख लेते हैं ।
पहला स्टेप
आप इस कोड को वहाँ पर paste करो जहा आपको लाइव सर्च बॉक्स चाहिए ।
<div class="header-search-box"> <div class="search-box"> <form class="tksearch" method="get" action="<?php echo esc_url( home_url( '/' ) ); ?>" autocomplete="off" > <input type="text" name="s" placeholder="Find ..." id="live-search" class="tksearchTerm" value="<?php echo get_search_query(); ?>"> <button class="tk-rightsign-icon" value="" type="submit" aria-label="Search"></button></form> <span class="tk-loading-icon" id="loading-icon" style="display: none;"></span> <div class="search_result" id="search-results"></div> </div> <button class="searchbtn" onclick="toggleSearch()" aria-label="Toggle Search"><span class="tk-search-icon"></span></button>
अब आप इसको save कर दें ।
दूसरा स्टेप
अब आप functions.php फाइल मे नीचे दिए हुए कोड को paste करें ।
// Live Search
function enqueue_live_search_script() {
wp_enqueue_script(
'live-search',
get_template_directory_uri() . '/script/live-search.js',
array(), // No dependencies
wp_get_theme()->get('Version'),
true
);
wp_localize_script('live-search', 'liveSearch', array(
'ajax_url' => admin_url('admin-ajax.php')
));
}
add_action('wp_enqueue_scripts', 'enqueue_live_search_script');
function live_search() {
$query = isset($_POST['search_query']) ? sanitize_text_field($_POST['search_query']) : '';
if (!empty($query)) {
$args = array(
's' => $query,
'post_status' => 'publish',
'posts_per_page' => 6, // Limit results
'post_type' => 'post',
);
$search_query = new WP_Query($args);
$total_posts = $search_query->found_posts;
if ($search_query->have_posts()) {
while ($search_query->have_posts()) {
$search_query->the_post();
echo '<ul>
<a href="' . get_permalink() . '"><li>' . get_the_title() . '</li><span class="search-music-icon-post"></span></a>
</ul>';
}
wp_reset_postdata();
// Show "See More" if there are more results
if ($total_posts > 5) {
echo '<div class="search-item see-more">
<a href="' . get_site_url() . '/?s=' . urlencode($query) . '">Click Here for More</a>
</div>';
}
} else {
echo '<div class="search-item">No results found.</div>';
}
}
die();
}
add_action('wp_ajax_live_search', 'live_search');
add_action('wp_ajax_nopriv_live_search', 'live_search');
अब इसे भी save कर दें ।
तीसरा स्टेप
अपनी थीम के folder मे जाएँ और live-search.php के नाम से एक फाइल बनाएँ और नीचे दिए हुए कोड को वहाँ पेस्ट कर दें ।
document.addEventListener("DOMContentLoaded", function () {
const searchInput = document.getElementById("live-search");
const resultsContainer = document.getElementById("search-results");
const loadingIcon = document.getElementById("loading-icon");
if (searchInput) { // Make sure the search input exists
searchInput.addEventListener("keyup", function () {
let query = searchInput.value.trim();
if (query.length > 0) { // Search starts immediately
loadingIcon.style.display = "inline-block"; // Show loading icon
let xhr = new XMLHttpRequest();
xhr.open("POST", liveSearch.ajax_url, true); // Use localized AJAX URL
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
loadingIcon.style.display = "none"; // Hide loading icon
resultsContainer.style.display = "block";
resultsContainer.innerHTML = xhr.responseText;
}
};
xhr.send("action=live_search&search_query=" + encodeURIComponent(query));
} else {
resultsContainer.innerHTML = "";
resultsContainer.style.display = "none";
}
});
} else {
console.error("Live search input not found.");
}
});
अब इसे भी save कर दें ।
अंतिम स्टेप (optional)
अब आप या तो अपने द्वारा CSS coding कर के design कर सकते है या मेरे दिए हुए CSS कोड का उपयोग कर सकते हैं ।
.search_result, .search-box .tk-loading-icon {
position: absolute;
background: #f7f7f7;
z-index:9999;
}
.search_result {
max-height: 200px;
overflow: auto
}
.search_result::-webkit-scrollbar {
display: block
}
.search_result::-webkit-scrollbar {
width: 3px
}
.search_result::-webkit-scrollbar-thumb {
background: #035680;
}
.search_result a:hover {
background-color: #fff
}
.search_result ul li{
padding: 5px 0;
color: #3f3f3f;
font-weight: 700;
display: -webkit-box;
margin: 0;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
overflow: hidden
}
.search_result ul {
padding: 0;
list-style: none;
margin: auto
}
.search_result ul a {
display: grid;
grid-template-columns: 89% 10%;
gap: 1%;
align-items: center;
margin: 0px;
max-height: 46px;
overflow: hidden;
padding: 4px;
font-size: 80%
}
.search-item {
padding: 0 10px;
margin-bottom: 10px }
अब इसे भी save कर दे ।
इन्ही तरीकों से आप अपने वेबसाईट मे live search बॉक्स लगा सकते हो । पर ध्यान रखिए अगर आपकी वेबसाईट shared hosting मे है तो आप इसका उपयोग न करे तो अच्छा रहेगा ।
