1) Все рубрики объявлений необходимо сгруприовать. Для этого помещаем их в служебную рубрику контейнер назовем ее например Объекты. Запоминаем id контейнера, далее в процессе работы нам будет очень удобно получать весь список рубрик с помощью стандартных WordPress функции wp_list_categories, wp_dropdown_categories используя в качестве аргумент параметр ‘child_of’.
Теперь добавляем в контейнер произвольные категории, подкатегории, под-подкатегории сколько угодно уровней и количество.
2) Теперь нам надо отменить стандартный выбор категорий в самом плагине – открываем файл ads_config.php (он должен быть непосредственно в папке плагина в корне) если его нет, то надо его создать.
Далее прописываем туда такой код:
$ads_config[‘form_templates’][‘all’] = ‘/form_default_template.php’;
1 | $ads_config[‘form_templates’][‘all’] = ‘/form_default_template.php’; |
form_default_template.php – это наш шаблон формы, находится он в директории /templates
Можете создать свою форму и положить ее в /templates . Теперь кликнув по ссылке “добавить объявление” вы должны сразу попасть на эту форму миную этап выбора категорий.
3) Открываем шаблон формы ввода form_default_template.php разметка здесь задается здесь с помощью таблицы – ничего сложного. Нам надо добавить новый управляющий элемент, в удобном месте добавляем новую строку tr
<tr><td>Объекты<font color=»red»>*</font></td> <td><?=ads_category_select(3,’ads_basecat’)?> новострой: <input type=»checkbox» name=»ads_novostroi» value=»новострой» /> <br /><?$this->error_msg(‘ads_basecat’)?> </td></tr>
12345 | <tr><td>Объекты<font color=«red»>*</font></td><td><?=ads_category_select(3,‘ads_basecat’)?>новострой: <input type=«checkbox» name=«ads_novostroi» value=«новострой» /><br /><?$this->error_msg(‘ads_basecat’)?></td></tr> |
Поясняю : сам список добавляется функцией ads_category_select(3,’ads_basecat’) где 3 это id той самой рубрики контейнера Объекты вам надо поменять на свой 🙂 ads_basecat – имя списка select name=’ads_basecat’. Сохраняем перезагружаем все теперь вы должны увидеть выпадающий список жаждущий вашего выбора.
4) Но это еще не все! Нам надо добавить проверку этого поля, поэтому раскоментируем пользовательский фильтр в самом верху шаблона, если кто не знает надо раскоментировать строчки.
и в этот фильтр добавить проверку
//пользовательский фильтр проверка введеных данных if( !function_exists(‘ads_form_filter’) ){ function ads_form_filter($_post){ if(!$_post[‘ads_basecat’]){ $_post[‘error’][‘ads_basecat’] = ‘Выберите объект!’; } ………… ………… } }
1234567891011 | //пользовательский фильтр проверка введеных данныхif( !function_exists(‘ads_form_filter’) ){ function ads_form_filter($_post){ if(!$_post[‘ads_basecat’]){ $_post[‘error’][‘ads_basecat’] = ‘Выберите объект!’; } ............ ............ }} |
Проверяем – оставим список без выбора и нажимаем кнопку отправить должно выскочить сообщение ‘Выберите объект!’.
P.S.
Вместо моей функции ads_category_select можно использовать wp_dropdown_categories там можно задать много больше настроек и тогда необязательно будет группировать объявления в контейнер, но это уже самостоятельно.