2015-03-11 2 views
-1

Я хочу создать форму с двумя полями. В первом поле перечислены все страницы, а во втором поле перечислены все дочерние страницы (если они есть) выбранной страницы из первого поля. Когда форма отправляется, сайт перенаправляет пользователя на выбранную страницу. Как я могу реализовать эту форму?Фильтрация страницы родителя/ребенка WordPress

ответ

0

Вам понадобится выполнить запрос AJAX, чтобы получить второй выпадающий список.

В WordPress есть функция, которая получает страницы, и вы можете указать родительские идентификаторы, а также показывать только страницы верхнего уровня.

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

<?php 
$top_level_pages = get_pages(array('parent'=> 0)); 
?> 
<select> 
    <?php 
    foreach($top_level_pages as $top_level_page) { 
     echo '<option>'.$top_level_page['post_title'].'</option>';  
    } 
    ?> 
</select> 

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

Второй выбор должен выглядеть примерно так:

<?php 
$id = $_GET['page_id']; // get the id of the page from the first select 
$child_pages = get_pages(array('child_of'=>$id)); 
?> 
<select> 
    <?php 
    foreach($child_pages as $child_page) { 
     echo '<option>'.$child_page['post_title'].'</option>';  
    } 
    ?> 
</select> 

Подробнее о get_pages() функции здесь: http://codex.wordpress.org/Function_Reference/get_pages

+0

Спасибо за ваш ответ, это действительно здорово! Я не знаком с запросами AJAX, можете ли вы расширить эту часть? Я могу видеть из вашего ответа, как заполняются выборки, а также как можно перенаправить пользователя на выбранную страницу для отправки? Извините за все вопросы, я просто хочу получить хорошее понимание. Еще раз спасибо ... –

+0

Не беспокойтесь, спасибо еще раз за вашу помощь, очень ценю. –

Смежные вопросы