Ads WordPress подключение своих шаблонов

! Эта статья устарела, смотрите новую версю плагина Ads WordPress 3.x
В плагине есть возможность создавать различные формы ввода в зависимости от категории объявления, а также изменять внешний вид готового объявления в зависимости от категории. В этой статье я расскажу как перевязывать между собой категории и шаблоны, для это вам потребуется минимальные знания html и php. Многие жалуются, что копание в коде это слишком сложно для них и надо было бы все сделать через админку, но я думаю, что управление в админке в таком случае получилось бы очень сложным и запутанным, на реализацию интерфейса потребовалось бы уйма времени, а главное всех вариантов и нюансов управления учесть все равно не получится и в конце концов придется таки нырять в phphtml код. Ну так чем огород городить Сделаем глубокий выдох и ныряем за мной.
Для начала предположим наш сайт (Городской портальчиг) имеет такую рубрикацию:

  • Новости 1
  • Законы 2
  • Финансы 3
  • Объявления 4
    • Недвижимость 5
      • Квартиры 6
      • Дома 7
      • Участки 8
      • Офисы 9
      • Склады 10
    • Автомашины 11
    • Бытовая техника 12
    • Услуги 13

Итак открываем конфигурационный файл ads_config.php и пишем

$ads_config['form_templates']['Недвижимость'] = '/ads_rent_form.php';
$ads_config['form_templates'][11] = '/ads_auto_form.php';  // автомашины
$ads_config['form_templates']['default'] = '/form_default_template.php';

Здесь мы назначили рубрике Недвижимость свою собственную форму ввода это файл ads_rent_form.php место положение относительно папки плагина.
Другой вариант это использовать id рубрики, как это сделано для категории Автомашины.
Ну и наконец для всех остальных вариантов мы назначаем форму по умолчанию form_default_template.php.
Обратите внимание на то, что назначив рубрике Недвижимость свою форму, мы, тем самым прекращаем процесс выбора рубрик и переходим к форме ввода, но в Недвижимости ведь есть еще под рубрики, поэтому в форме придется самостоятельно организовать дополнительный элемент управления чекбокс или флажки либо переключатели, для того чтобы пользователь мог выбрать эти подрубрики.
Вот приме как это можно сделать:

if($post['ads_basecat']){
    $args .= '&child_of='.$post['ads_basecat'];
}
elseif($_GET['ads_basecat']){
  $args .= '&child_of='.$_GET['ads_basecat'];
};
if($ads_options['ads_exclude']){
   $args .= '&exclude='.$ads_options['ads_exclude'];
};
$cat = get_categories($args);
foreach ($cat as $key=>$value) {
    $category.="$value->name<input type="checkbox" name="post_category[]" value="$value->term_id" />&nbsp;&nbsp;&nbsp;";
}
?>
// далее в форме 
<tr><td>Категория*</td><td><?=$category?></td></tr>

Если мы хотим вообще пропустить этап выбора категории, нам надо назначить шаблон all

$ads_config['form_templates']['all'] = '/all_form.php';

Теперь переходим от ввода данных к отображение чего мы там наводили.
Шаблоны постов связываются с категориями через массив

$ads_config['post_templates']['Недвижимость'] = '/post_rent.php';
$ads_config['post_templates'][11] = '/post_auto.php';
$ads_config['post_templates']['default'] = '/post_default_template.php';

Как видите система точно такая же можно использовать название рубрики или ее id.
Тут надо еще сказать? что каждому объявление присваивается мета поле ads_basecat это поле своего рода флаг что запись является именно объявлением, и это же поле определяет шаблон с помощью которого будет показана запись. Так вот если мы имеем такую форму ввода как я описывал выше с Недвижимостью, то в этом случае ads_bascat будет присвоено id Недвижимости, а не ее под категорий.

Скачать плагин

Рубрика:  апреля 25, 2009.
/ » » »


Похожие записи:

12 Responses to Ads WordPress подключение своих шаблонов

  1. says:

    А как сделать вывод по какому-то одному полю записи?

    как например у вас выводится по городам
    http://ili.com.ua/?ads_location=Донецк

    Необходимо чтобы также вывод был по произвольным значениям полей. Подскажите пожалуйста.

  2. admin says:

    сформировать строку запроса добавить к ней параметры
    тоесть ваши поля ads_
    ну например
    http://ili.com.ua/?tag=detskiy-prazdnik&ads_location=Донецк&ads_name1=value1 …..
    в данном случае мы запрашиваем записи по тегу детский праздник + добавляем условие что поле ads_location = Донецк и также добавляем второе условие поле ads_name1 = value1

    условий может быть много

  3. says:

    Спасибо! Заработало!

  4. Константин says:

    А почему после обновления файлов плагин выдаёт

    Warning: session_start() [function.session-start]: Cannot send session cache limiter — headers already sent (output started at /home/pengvisi/domains/pengvision.com.ua/public_html/www/wp-content/plugins/ads-wordpress/ads_config.php:1) in /home/pengvisi/domains/pengvision.com.ua/public_html/www/wp-content/plugins/ads-wordpress/ads.php on line 27

    А Вордпресс просто умер
    и посмертно написал

    Warning: Cannot modify header information — headers already sent by (output started at /home/pengvisi/domains/pengvision.com.ua/public_html/www/wp-content/plugins/ads-wordpress/ads_config.php:1) in /home/pengvisi/domains/pengvision.com.ua/public_html/www/wp-includes/pluggable.php on line 850

    Но когда я конфиг заменяю оригиналом всё снова в норме. Как это исправить? Мне нужно только двум рубрикам изменить шаблон.

  5. Константин says:

    Простите но я уже всё исправил там надо было через Дримвейвер
    всё редактировать. Прекрасный плагин!

  6. Константин says:

    Простите но я уже всё исправил там надо было через Дримвейвер
    всё редактировать. Прекрасный плагин!

  7. says:

    А если имеется две разных формы и в одной есть обязательное поле с проверкой а в другой нет то как отключить эту проверку во второй форме потому что она не дает сохранить говорит незаполнено поле которого вообще нет из массива array в форме параметр убрал а проверку просит

  8. admin says:

    да с такими проверками немного сложнее
    в простейшем случае можно обойтись
    оператором условной проверки
    function ads_filter($post){
    $ads_basecat = ($post['ads_basecat'])?$post['ads_basecat']:$_GET['ads_basecat'];

    if($ads_basecat = 45) не делаем проверку
    else делаем проверку

    $post['post_category'][] = $ads_basecat;
    return $post;
    }
    add_filter(‘ads_check_fields’, ‘ads_filter’);

    ориентируемся на переменную $post['ads_basecat'] она должна содержать номер категории

    ну если категорий много и для каждой надо проверять разный набор то лучше использовать конструкцию
    switch case

    посмотрите примеры в файлах ads_config1-4.php

  9. Dima says:

    У меня главная страница сайта статическая, я хотел бы, что бы под текстом на этой странице выдавались объявления (последние), как на вашем сайте. Есть ли простое решение?

  10. admin says:

    ну не знаю насколько это простое будет для вас
    если только для главной страницы надо сделать вывод то придется залазить в код шаблона
    я бы использовал функцию get_posts($args)

  11. dak says:

    Нужно вывести список постов по тегу например «..&ads_location=Киев», а файл index.php темы не умеет это (там свои постройки), как можно это сделать по-другому?
    Благодарю!

  12. admin says:

    надо сформировать адрес (GET запрос ) и адресной строке добавить
    &ads_location=Киев например
    http://ili.com.ua/auto-moto?ads_location=Киев здесь так и сделано, собственно, тоже самое относится и к другим полям с префиксом ads_ действовать аналогичным образом, ну а формировать такие ссылки это уже самостоятельно надо

Добавить комментарий

Новости

  • Украинцы создали самую плохую игру
  • Украина останется без таксофонов
  • Чернобыль будет жить вновь
  • Почему поезд сошел с рельсов?
  • Украинская неделя искусств
  • Результаты выборов в Украине
  • Гривна сейчас стабильнее чем в 2008
  • Комментарии


    Расширеный поиск +

    Другие статьи

    Объявления

    Мои проекты на WordPress

    , - специализированная доска объявлений по недвижимости на стоимость сборки $300 с установкой.
    городская доска объявлений, основные разделы: недвижимость, транспорт, услуги, работа, куплю-продам. Стоимость сборки $300 с установкой.
    - разработка, поддержка.

    Счетчики

    our blog