নিম্নলিখিত jQuery UI স্বতঃপূরণ ব্যবহার করে, যা ওয়ার্ডপ্রেসে অন্তর্ভুক্ত হয়েছে 3.3 থেকে। (আমি @ রর্স্ট : ডি থেকে ফর্ম্যাট ধার নিয়েছি )।
এটি আপনি ঠিক পরে যা করছেন তা এখনও ঠিক নয়, তবে আপনাকে একটি ভাল সূচনা পয়েন্ট দেয়। নিম্নলিখিতটিতে একটি বেসিক jQuery UI স্টাইলিং ব্যবহার করা হয়েছে তবে আপনি বর্তমানে ট্র্যাকটিতে কাজ করে এমন একটি ব্যবহার করতে পারেন এবং এটি আপনার প্লাগ-ইন ফোল্ডার থেকে কল করতে পারেন।
class AutoComplete {
static $action = 'my_autocomplete';//Name of the action - should be unique to your plugin.
static function load() {
add_action( 'init', array( __CLASS__, 'init'));
}
static function init() {
//Register style - you can create your own jQuery UI theme and store it in the plug-in folder
wp_register_style('my-jquery-ui','http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css');
add_action( 'get_search_form', array( __CLASS__, 'get_search_form' ) );
add_action( 'wp_print_footer_scripts', array( __CLASS__, 'print_footer_scripts' ), 11 );
add_action( 'wp_ajax_'.self::$action, array( __CLASS__, 'autocomplete_suggestions' ) );
add_action( 'wp_ajax_nopriv_'.self::$action, array( __CLASS__, 'autocomplete_suggestions' ) );
}
static function get_search_form( $form ) {
wp_enqueue_script( 'jquery-ui-autocomplete' );
wp_enqueue_style('my-jquery-ui');
return $form;
}
static function print_footer_scripts() {
?>
<script type="text/javascript">
jQuery(document).ready(function ($){
var ajaxurl = '<?php echo admin_url( 'admin-ajax.php' ); ?>';
var ajaxaction = '<?php echo self::$action ?>';
$("#secondary #searchform #s").autocomplete({
delay: 0,
minLength: 0,
source: function(req, response){
$.getJSON(ajaxurl+'?callback=?&action='+ajaxaction, req, response);
},
select: function(event, ui) {
window.location.href=ui.item.link;
},
});
});
</script><?php
}
static function autocomplete_suggestions() {
$posts = get_posts( array(
's' => trim( esc_attr( strip_tags( $_REQUEST['term'] ) ) ),
) );
$suggestions=array();
global $post;
foreach ($posts as $post):
setup_postdata($post);
$suggestion = array();
$suggestion['label'] = esc_html($post->post_title);
$suggestion['link'] = get_permalink();
$suggestions[]= $suggestion;
endforeach;
$response = $_GET["callback"] . "(" . json_encode($suggestions) . ")";
echo $response;
exit;
}
}
AutoComplete::load();