Редактирование поста с фронт-енда с помощью Advanced Custom Fields Pro

Редактирование поста с фронт-енда с помощью Advanced Custom Fields ProПродолжая тему создания постов с фронт-енда, предлагаю вашему вниманию инструкцию как создать возможность редактирования постов с фронт-енда.
За основу использовался пример с сайта The Stiz Media
Итак, Форма создания нового поста с фронт-енда уже создана. Теперь нужно сделать возможность редактирования этого поста.

Шаг1. Добавить форму редактирования в шаблон single.php

Форму редактирования нужно добавить прямо в шаблон single.php. Нужно использовать те же поля, что были созданы при добавлении формы нового поста.
Первым делом в шаблон single.php в самом начале шаблона перед get_header(); нужно добавить acf_form_head();. Выглядеть начало шаблона будет так:

Далее, в том месте, где необходимо добавить кнопку редактирования поста, добавить следующий код. Лучше всего после <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>:

Традиционно в форме нужно изменить ID групп полей, то есть цифры 1210, 1215, 1208 заменить на свои ID.

Шаг 2. Форма в спойлере

Для того, чтобы форма редактирования была скрыта, в коде предусмотрен спойлер. Сама форма помещена внутрь спойлера. Она появляется после нажатия на кнопку «Редактировать».
Для работы спойлера нужно, чтобы была подключена библиотека jquery. Обычно она уже подключена по умолчанию. У меня, например, подключена следующая библиотека (код добавляется в function.php):

Также для работы спойлера нужно доавить следующие стили:

Шаг 3. Добавить функцию acf/save_post

Для работы формы, нужно добавить функцию в шаблон function.php

В коде нужно заменить ключи полей (Fields Key), если вы создавали поля самостоятельно. Если вы импортировали мой файл acf-export.rar ранее, тогда этого делать не нужно так как ключи совпадают.

Теперь зарегистрированные пользователи могут не только добавлять новые посты, но и редактировать их. И для этого не обязательно пускать их в админ-панель.

Демонстрация


Подпишитесь на RSS канал - если Вы хотите первыми узнавать о новых статьях на сайте!!!

Статьи по теме:

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

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