Intereting Posts
$ GLOBALS vs global $ wp_query Редактирование <? Php the_content («Подробнее …»); ?> Когда название и название категории одинаковы … WP выберет archive.php вместо single.php получить случайную строку из пользовательской таблицы Добавить поле в панель мониторинга, чтобы обновить внедренный URL-адрес на главной странице? WYSIWYG в пользовательских мета-ящиках при отключении главного редактора? redirect_to игнорирование SSL Не уверен, что сохранить это или нет (noindex вопрос) Как разместить ссылку домашней страницы внутри кода php_e? Как сделать мою кнопку «Главная» в меню перенаправлением на мою корневую страницу Идентификатор таксономии верхнего уровня Восстановление из старой локальной копии папки xampp, в которой был сохранен проект Блокировка плагина Css для загрузки пользовательских в каталог шаблонов Как получить доступ к удаленной базе данных с помощью локальной установки MAMP? Добавить загрузку логотипа в настройку API

Использовать Ajax для фильтрации сообщений?

Прямо сейчас я отправляю раскрывающуюся форму на свою собственную страницу (action = "") для фильтрации сообщений.

Я не хочу обновлять страницу, которая сбрасывает формы. Есть ли способ запрашивать сообщения / фильтровать их с помощью ajax?

Solutions Collecting From Web of "Использовать Ajax для фильтрации сообщений?"

Я бы пошел с ответом @Vinicius со следующими изменениями:

  1. type: 'GET' изменения type: 'GET' для type: 'POST'

  2. Измените ajax: 1 на action: 'filter_posts'

  3. Замените add_action('init', 'check_ajax'); с:

    add_action ('wp_ajax_filter_posts', 'check_ajax'); add_action ('wp_ajax_nopriv_filter_posts', 'check_ajax');

  4. Удалить:

    if (! isset ($ _ POST ['ajax'])) return false;

Да, но вам придется немного поработать над этим. Предположим, вы отправляете следующие переменные через jQuery:

 $.ajax({ type: 'GET', url: location.href, data: { ajax: 1, category_id: <some_id> }, success: function(data){ $('.posts').html(data); } }); 

Затем вы должны проверить запрос следующим образом:

 add_action('init', 'check_ajax'); function check_ajax() { if (!isset($_POST['ajax'])) return false; $query = new WP_Query( 'cat=' . intval($_POST['category']) ); while( $query->have_posts() ) { $query->the_post(); ?> <div class="<?php post_class(); ?>"> <h2> ... <?php the_title(); ?> ... </h2> ... your post template </div> <?php } exit(); } 

Это далеко не полный, и это не проверено, но я надеюсь, что это даст вам какое-то направление. = D

Вам удалось загрузить отфильтрованную страницу без AJAX?

Если вы изменяете основной запрос с помощью нового WP_Query, вы можете использовать этот параметр запроса

http://wordpress-site.com/page-slug/?query-parameter-1=1&query-parameter-2=2

где параметр запроса может быть таксономическим термином, автором или любым другим параметром.

Для JavaScript (JQuery) вы можете просто использовать

 $('#target-div').load(targetPage + ' #target-div-content', function() { // do script here }); 

где targetPage – параметр запроса.

Надеюсь, что эта помощь