Предопределенные поля формы

Как я уже говорил, объявления представляют собой обычные записи WorPress и каждая запись может иметь след поля:

  • ID – уникальный номер записи, генерируется автоматически базой данных, не изменяется
  • post_author – id автора записи
  • post_date – дата создания
  • post_date_gmt – дата создания в GMT
  • post_content текст записи основное содержимое – content
  • post_title – заголовок
  • post_excerpt – короткий о чем запись, анонс
  • post_status статус записи publish – опубликована, draft – черновик, pending – на модерации, ждет утверждения
  • comment_status статус комментариев: open – комментарии открыты, close – закрыты
  • ping_status – статус пингов: open – открыты, close – закрыты
  • post_password – пароль записи, !не путать с похожим полем ads_password – пароль объявления
  • post_name – имя поста или используется для формирования url постоянной ссылки записи
  • post_modified дата последнего изменения записи
  • post_modified_gmt дата последнего изменения записи GMT
  • menu_order порядок записи при сортировке, используется при нестандартной сортировке
  • post_type тип записи по умолчанию post

Это родные поля WordPress и они ,естественно, соответствуют полям таблицы wp_posts. Их можно устанавливать через плагин.

Для нас главное запомнить post_content – текст записи, основное содержимое или content
и post_title - заголовок.

Кроме этого списка плагин Ads-WordPress добавляет свои поля:

  • ads_basecat – категория объявления (мета поле)(обязательное)
  • ads_password – пароль объявления (мета поле)(обязательное)
  • ADS_ACTION – текущее действие пользователя на какую кнопку он нажал – опубликовать, удалить запись сохранить как черновик.
  • ads_captcha – код картинки антибот
  • ads_overdue – флаг о там что объявление помечено как неактивное – отправлено в корзину (мета поле)
  • ads_old_categories – если при отправке в корзину настроено менять категорию объявления, то здес будет хранится список категорий до перемещения в корзину, таким образом запись в последствии можно восстановить (мета поле)
  • ads_lifetime время жизни объявления в днях, по истечению это времени объявление будет удалено либо перемещено в корзину в зависимости от ваших настроек
  • ads_form_id – id страницы с формой, через которую было отправлено это объявление
  • ads_form_name – имя страницы с формой, через которую было отправлено это объявление, соответствует post_name – страницы
  • ads_location – хранит id категории из контейнера location ГЕО привязка объявлений (мета поле)
  • ads_IP – хранить IP пользователя с которого было отправлено объявление (мета поле)(обязательное)
  • hiddens – служебное поле, хранит список скрытых полей
  • tabs – служебное поле для переключения табов New Post или Edit

(мета поле) – значение хранится как мета поле, можно открыть объявление через стандартный редактор в админке и посмотреть meta fields.png
Обязательные поля заполняются автоматически.
Не рекомендую изменять эти поля вручную если нет твердого понимания как и где оно используется.

Комментарии 14 к “Предопределенные поля формы”

  1. Дмитрий:

    Добрый день. Задавал уже этот вопрос, но не нашёл где, может удалился.
    Например, в ads-config проверяем поле post_content, если в тексте объявления есть, название фирмы спамера или их телефон, то это объявление отправляем на модерацию вместо публикации. Всё кроме “отправляем на модерацию” я знаю как сделать. Видимо тут надо как-то изменить post_status. Не подскажите?

    И ещё вопрос по борьбе со спамом. Если разрешить обновлять запись и при этом меняется дата на текущую, то находятся те, кто обновляет каждые пять минут. Можно ли разрешить обновление например, раз в сутки?

    Спасибо.

    • admin:

      чтобы менять статус записи в зависимости от post_content надо подключить свой фильтр на wp_insert_post_data проверить содержимое и выставить нужный статус
      по борьбе со спамом в плагине есть опция интервал между сообщениями посмотри в админке

      • Дмитрий:

        Спасибо. По первому, буду пробовать, а по второму вопросу, всё-таки это не вариант, так как встречаются люди, которые подряд размещают несколько хороших объявлений, не хочется их ущемлять. Ладно, буду думать и пробовать.

        • admin:

          да чо-то я ошибся ==между сообщениями посмотри в админке== только для новых объявлений будет работать
          таки да может получится кликалка :)

      • Дмитрий:

        Злоупотребления обновления при редактировании, решил так: если прошло менее суток, то дату не меняем:
        function set_date(){
        global $ads_options;
        if($ads_options['ads_change_date']){
        $time_sys = time();
        $time_post = get_the_time(‘U’, $_REQUEST['ID']);
        $time_proshlo = $time_sys – $time_post;
        if ($time_proshlo > 86400) {
        $_REQUEST['post_date'] = current_time(‘mysql’);
        $_REQUEST['post_date_gmt'] = ”;
        }
        }
        }

      • Дмитрий:

        С wp_insert_post_data не разобрался.
        Как я понял нужно добавить add_filter(‘wp_insert_post_data’,'Наша функция’);
        И сделать нашу функцию, но как её сделать не знаю
        function Наша функция($post['post_content'],$spam_list){
        foreach ($spam_list as $value) {
        $spam = stripos($post['post_content'],$value);
        if($spam!==false){
        Объявление отправить на модерацию
        }
        }
        return $Объявление отправить на модерацию ;
        }
        Как это оформить в работающий код не знаю.
        P.S. Код, который вставлял в предыдущем комментарии, вставился с ошибкой с кавычками в последней строке.

  2. Евгений:

    Добрый день.
    Скажите пож. как убрать генерируемые ссылки из записи – “URL”, “HTML Link:” и “bbCode:”?

  3. Здравствуйте!

    Не уверен что точно попал с темой, но возник такой вопрос. После удаления из объявления картинки, выводится надпись, что оно перемещено в черновик и нужно его обновить. Но в действительности, статус объявления не изменяется на ‘draft’. Более того, такое объявление видит запрос query_posts() с аргументами по статусу ‘published’. Таким образом вопрос: что происходит с объявлением после того, как удаляется картинка? Очень нужно в запросе query_posts() организовать фильтр для таких объявлений

    Спасибо!

    • admin:

      при удалении картинки статус объявления должен меняеться на auto-draft, каким образом эти посты попадают query_posts( post_status=‘published’ ) это не понятно

  4. rus:

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

  5. Александр:

    Здравствуйте.

    Как присвоить slug объявления номер id? В моем случае уникальные циферки будут смотреться лучше.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> [php]…[/php] [html]…[/html] [css]…[/css] [text]…[/text] [code]…[/code]