Публикация в группе: Плагин WP-Recall - Личный кабинет на WordPress

Категории группы: Полезное

Добавлено в закладки: 13

Внимание! Данная статья устарела, неактуальна и представляет лишь исторический интерес.

Благодаря доработке функционала плагина Wp-Recall и в частности дополнения публикации появилась возможность более гибко влиять на вывод формы публикации от плагина Wp-Recall. Рассмотрим несколько примеров воздействия на выводимую форму публикации для получения желаемого результата.

Итак, напомню, что вывод формы публикации осуществляется шорткодом [ public-form ].

Но мало кто знает, что мы можем публиковать через данную форму записи не только типа post, но и любого другого типа, который нам необходим. Допустим, на нашем сайте есть записи произвольного типа custom-type. Данные записи мы можем публиковать через админку и с этим все замечательно, но как быть если появилось желание дать возможность публикации новых записей этого типа через фронт-энд сайта, с его страниц, другим пользователям? Для решения этой задачи достаточно указать в шорткоде формы публикации нужный тип записи через атрибут post_type. Например:

[ public-form post_type='custom-type' ]

после чего данная форма будет публиковать записи указанного типа.

У произвольных типов записей часто присутствуют свои таксономии, которые необходимо также назначать для публикуемой записи. Чтобы вывести в форме публикации список существующих терминов таксономии данного типа записи для их выбора, необходимо указать какая именно таксономия используется для данного типа записи. Например:

В результате форма публикации начнет предлагать для типа записи custom-type существующие термины таксономии custom-tax.

Форма публикации при своем выводе всегда по-умолчанию выводит весь набор необходимых для публикации полей, куда входят: заголовок, редактор, загрузчик медиафайлов и произвольные поля, если они были созданы.

Рассмотрим возможности по отключению определенных элементов формы публикации, если они нам, по каким то причинам, стали не нужны. Для этого необходимо обратиться через фильтр формы публикации к массиву настроек формы и отключить, то что нам не нужно:

В созданную функцию edit_publicform_rcl() мы получаем массив полей формы публикации и которые по-умолчанию имеют значение true, если какое то конкретное поле формы нам не требуется для вывода, то мы проставляем ему значение false или 0.

Второй аргумент созданной функции передает нам данные создаваемой или уже созданной публикации (если идет ее редактирование), используя которые мы можем проставлять различные проверки, например, о принадлежности поста к нужному типу записи:

В итоге форма публикации для типа записи custom-type будет иметь только заголовок и редактор, все остальные поля будут убраны. Такая же картина будет наблюдаться при редактировании записи такого типа.

Допустим, мы убрали из формы даже поле заголовка и необходимо, чтобы заголовок при публикации назначался по какому то единому шаблону или был вообще для всех типов записи одинаков. Для этого заголовок надо переназначить через простой код

В функцию add_custom_post_title() мы получаем данные публикуемой или редактируемой записи перед ее сохранением в БД и редактируем их нужным нам образом, в данном случае, мы назначаем свой заголовок, если он отсутствует.

По-умолчанию, все записи будут сразу публиковаться, поэтому имеет смысл посылать записи с формы на модерацию:

Иногда возникает необходимость добавить в форму публикации какие то свои поля, которые будут передавать данные для дальнейшей обработки. Рассмотрим возможность добавления своего текстового поля в форму публикации и обработку данных полученных от этого добавленного поля.

Для начала выведем наше поле в форме публикации:

С помощью кода выше мы добавили в форму публикации наше текстовое поле, которые будет выводится только при публикации или редактировании записей типа custom-type.

Данные отправленные из этого поля будут обрабатываться с помощью кода ниже:

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

Если к форме публикации произвольного типа записи необходимо прикрепить функционал произвольных полей Wp-Recall, то вникаем в статью "Добавляем произвольные поля к произвольному типу записи через форму публикации Wp-Recall"

Перечисленные манипуляции с формой публикации позволят вам выводить форму практически любой конфигурации и для любого типа записей. Некоторые элементы формы, которые невозможно убрать указанными методами можно легко убрать используя css-стили, но в дальнейшем настроек для формы станет больше и надеемся, что в будущем не придется делать даже этого.

65

Автор публикации

не в сети 5 часов

Андрей CS

10k

пока занят

Комментарии: 1780Публикации: 411Регистрация: 30-11--0001Продаж/Покупок: 16725/114