Ajax поиск в админке вордпресс
Делюсь найденным в сети кодом, пользуйтесь кому нужно.
- Создать файл с содержимым ниже, например в папке /js/admin-ajax-search.js:
- Подключить файл в админку вп прописав в файле funtions.php:
add_action( 'admin_enqueue_scripts', 'ant_admin_ajax_search' ); function ant_admin_ajax_search(){ wp_enqueue_script( 'admin_ajax_search', get_stylesheet_directory_uri() . '/js/admin-ajax-search.js'); }
Начните писать что то в поиске на странице постов или страниц в админке, выдача динамически изменится.
jQuery(document).ready(function($) { function ajax_admin_search_update_search() { s = a.val().replace(' ', '+'); console.log(s); var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); console.log(url); for (var i = 0; i < url.length; i++) { if (/(^s$)|(\bs=.*\b)|(\bs=)/g.test(url[i]) === true || /http.*/g.test(url[i]) === true) y = i; } if (typeof y === 'undefined'){ url.unshift('s='+s) }else{ url[y] = 's='+s; } url = url.join('&'); url = window.location.pathname+'?'+url; $.get(url, {}, function(data) { var r = $('<div />').html(data); var table = r.find(z); var tablenav_top = r.find(tnt); var tablenav_bottom = r.find(tnb); $(z).html(table); $(tnt).html(tablenav_top); $(tnb).html(tablenav_bottom); },'html'); $(document).ajaxStop(function() { if(s.length) { history.pushState({}, "after search", url); } else { history.pushState({}, "empty search", url); } }); } $(function() { a = $('input[type="search"]'); t = a.closest('form').find('table'); if(!t.length) t = a.closest('div').find('table'); if(!t.length) return; z = '.'+t.attr('class').replace(/\s/g, '.'); tn = '.top .displaying-num'; bn = '.bottom .displaying-num'; tpl = '.top span.pagination-links'; bpl = '.bottom span.pagination-links'; tnt = '.tablenav.top'; tnb = '.tablenav.bottom'; var timer; a.on('keyup', function(event) { if (timer) clearTimeout(timer); timer = setTimeout(ajax_admin_search_update_search, 300); }); }); });
Хорошее решение, только после запроса ссылки для быстрого редактирования записи уже не работают, также групповая правка записей не пашет, не всегда это удобно... А в остальном спасибо за код!
полезная штука, у меня на сайте плагин стоит
simpe-exlude
он лишние $_GET отправляет в url поиска , в следствии чего идет превышение URL и ошибка
этот кодик проблемку решил!
Полезно, но я столкнулся с такой проблемой, в wordpress когда страниц или записей очень много они встают под пагинацию (знаю, что можно в настройках отображения поменять количество элементов на одной странице), и поиск работает только на активной странице, а не по всем записям как хотелось бы )