Категории
Уведомление:подпишитесь Заходите к нам в Telegram-чат

Form to Post

SaNcHeS
Опубликовано 7-08-2021, 14:02
Создайте сообщение WP из отправки формы. Создайте форму с помощью контактной формы 7, быстрой безопасной контактной формы или просто простой формы, убедитесь, что вы правильно указали свои поля, тогда отправка формы будет отправлена по почте. Очень ограничено. Принимает только текст, без изображений, видео и т. Д. Без обработки ошибок. По сути, вы можете думать об этом как об оболочке формы для функции wp_insert_post. Пары имя-значение поля формы становятся входными данными для вызова wp_insert_post. ВНИМАНИЕ: использование этого плагина предоставляет спамерам возможность отправлять вам автоматические формы спама. Как создать форму с помощью контактной формы 7 (CF7), быстрой безопасной контактной формы (FSCF) или создать собственную HTML-форму. Назовите свои поля в соответствии с параметрами функции wp_insert_post. Как минимум, ваша форма должна иметь следующие два поля. Сообщение не будет создано, если одно или оба отсутствуют. post_title post_content Специальные поля post_category_name можно использовать для установки категории сообщения Как скрытое поле: Если вы хотите, чтобы все сообщения относились к одной и той же категории, создайте скрытое поле «post_category_name», значением которого является имя категории. При использовании CF7 скрытые поля не отображаются. Но вы можете добавить их, добавив плагин Contact Form 7 Modules. В качестве флажков: чтобы пользователь мог выбирать категорию с помощью флажка, создайте поле формы флажка с именем «post_category_name», каждое из которых имеет значение, которое является именем категории. (Если вы пишете свой собственный HTML напрямую, используйте «post_category_name []», см. «Пример простой формы» ниже). Пример определения формы CF7: Заголовок сообщения [text * post_title]
Содержимое сообщения (обязательно)
[textarea * post_content]
Категории (обязательно)
[checkbox * post_category_name "Uncategorized" » Cat1 "" Cat2 "" Cat3 "]
[submit" Post "]
Кроме того: если вы знакомы с wp_insert_post, тогда вы будете знать, что есть параметр« post_category », но нет« post_category_name ». Проблема с «post_category» в том, что для этого требуются идентификаторы категорий (числа). Но что вам действительно нужно в форме, так это названия категорий. Таким образом, этот плагин позволяет использовать «post_category_name», которое может быть одним или несколькими названиями категорий. Он ищет соответствующие номера категорий и устанавливает «post_category» для wp_insert_post. Но вы можете использовать вместо этого «post_category», если хотите. Но не используйте оба в одном и том же виде. post_author_name В то время как post_author требует идентификатора пользователя, вы также можете использовать post_author_name, которое принимает имя входа. (Та же идея, что и post_category_name в качестве альтернативы post_category). post_author_default Более слабая форма post_author_name, принимает имя пользователя. Если post_author_name или post_author_default не используются, то автор будет установлен в сообщении только в том случае, если человек вошел в систему. В этом случае используется его логин. Если вы используете post_author_name, тогда это игнорирует логин пользователя и устанавливает для автора значение post_author_name. Если вместо этого вы используете post_author_default, тогда он будет использовать идентификатор входа пользователя, если он вошел в систему, но если он не вошел в систему, он установит для автора значение post_author_default. Без использования CF7 или FSCF. Вы можете определить свои собственные поля именования форм, как описано выше. Но в этом случае вам нужно сделать один дополнительный шаг. Вам необходимо, чтобы целевая страница вашей формы вставляла данные в сообщение. Вы делаете это с помощью короткого кода [от формы до публикации]. Просто поместите короткий код на целевую страницу вашей формы, и он зафиксирует отправку и создаст сообщение. Пример простой формы: в этом примере мы создаем нашу собственную форму, которая публикуется на той же странице. Таким образом, мы помещаем сокращенный код и определение формы на одну страницу. Короткий код делает что-то только тогда, когда есть параметры публикации. ПРИМЕЧАНИЕ: ваша форма должна иметь method = "post", а не "get". [capture-form-to-post]
Заголовок сообщения:
Содержание сообщения: < br /> Без категории
< input type = "checkbox" name = "post_category_name []" value = "Cat1"> Cat1
Cat2
<тип ввода = "checkbox" name = "post_category_name []" value = "Cat3"> Cat3
Помните: НЕ используйте [capture-form-to-post], если ваш форма - это форма CF7 или FSCF. Дополнительно: есть еще много параметров для wp_insert_post, которые можно установить, просто поместив поля формы в вашу форму с тем же именем, что и параметр wp_insert_post. Примеры: post_status, для которого по умолчанию будет установлено значение «опубликовать», что сделает публикацию автоматически опубликованной. Но вы можете установить это в скрытом поле на 'draft', 'publish', 'pending', 'future', 'private' comment_status, который может быть 'closed' или 'open' post_excerpt post_date (формат: Ymd H: i: s, например, «2012-01-01 15:30:00») И многое другое, см. функцию wp_insert_post page_template: установить имя файла шаблона страницы (например, «new_template.php»). ПРИМЕЧАНИЕ: tax_input НЕ поддерживается. ПРИМЕЧАНИЕ. Если вы хотите отредактировать форму, вам нужно будет получить идентификатор сообщения и поместить его в поле «ID» формы. Настройка мета сообщения (настраиваемые поля): при желании вы можете установить в своем сообщении пары ключ-значение «мета сообщения» (настраиваемое поле). Для этого добавьте в форму поля, название которых начинается с «meta_». Например, если вы хотите установить мета-ключ сообщения «my_key», создайте поле формы с именем «meta_my_key». Префикс «meta_» используется для идентификации поля как мета-поля сообщения, а «meta_» удаляется. Затем выполняется вызов update_post_meta с указанием этого ключа и значения поля. Установка значений на стороне сервера с помощью фильтра: Пример ситуации 1: вы хотите установить post_status как «ожидающий», чтобы вы могли просматривать сообщения перед их публикацией. Однако вы не хотите помещать это как поле в свою форму, потому что вы обеспокоены тем, что хакер изменит его значение «опубликовано». Вы хотите контролировать это на стороне сервера, а не в форме в браузере пользователя. Пример ситуации 2: вы хотите применить некоторую логику относительно того, публикуется ли сообщение автоматически (возможно, на основе логина пользователя). Чтобы справиться с этими ситуациями, Form To Post предоставляет фильтр WordPress, в который вы можете добавить PHP-код. Имя фильтра - form_to_post_before_create_post. Функция фильтра принимает 1 параметр массива, который будет массивом $ post, переданным в функцию wp_insert_post. Пример Ситуации 1 Решение: в вашей теме или с помощью подключаемого модуля Add Shortcodes Actions And Filters добавьте функцию фильтра и зарегистрируйте ее в хук form_to_post_before_create_post. функция form_to_post_set_values ($ post) {$ post ['post_status'] = 'ожидание'; вернуть $ post; } add_filter ('form_to_post_before_create_post', 'form_to_post_set_values'); Установка настраиваемых полей на стороне сервера с помощью фильтра: вам понадобится другой обработчик для установки настраиваемых полей. Вот пример. function form_to_post_set_meta ($ post) {$ post ['order-status'] = 'Заказ получен'; вернуть $ post; } add_filter ('form_to_post_before_update_post_meta', 'form_to_post_set_meta'); Примечание: в этом случае вы не ставите перед значениями настраиваемых полей префикс «meta_». Делайте это только тогда, когда вы устанавливаете их в самой форме. Динамическое управление данными формы после отправки Продвинутое приложение должно управлять необработанными данными формы непосредственно перед тем, как плагин использует их. Хук form_to_post_form_data позволяет это. Функции, подписывающиеся на эту ловушку, принимают один аргумент - данные формы. Структура данных такая же, как и в плагине CFDB (еще один из моих плагинов). Пример: у вас нет поля «содержание сообщения» или «заголовок сообщения» в вашей форме, но вы хотите установить эти значения как комбинацию значений из других полей формы. В этом простом примере в нашей форме есть поля «ваше имя» и «ваш адрес электронной почты». Ловушка используется для создания полей «post-content» или «post-title» в виде текста со встроенными в них значениями полей «your-name» и «your-email». function f2p_consolidate_fields ($ form_data) {// при необходимости измените имя функции $ form_title = 'F2P With Hook Example'; // Измените это на имя вашей формы if ($ form_data-> title = $ form_title) {// Следующая строка устанавливает значение post_title $ form_data-> posted_data ['post_title'] = "Сообщение из {$ form_data-> posted_data [' ваше имя']}"; // Следующая строка устанавливает значение post_content $ form_data-> posted_data ['post_content'] = "Это сообщение от {$ form_data-> posted_data ['your-name']} с адресом электронной почты {$ form_data-> posted_data ['ваш -электронное письмо']}"; } return $ form_data; } add_filter ('form_to_post_form_data', 'f2p_consolidate_fields', 10, 1); // убедитесь, что имя функции совпадает с указанным выше

Автор: Michael Simpson

Версия: 0.10

Последнее обновление: 2016-03-15 9:05pm GMT

Понравилось?
0
0
0

Скачать Form to Post:

form-to-post.zip Размер файла: 22.6 Kb
329
0