Да, конечно!
Для создания frontend формы публикации статей в WordPress с редактором Gutenberg, вам понадобится создать кастомную форму и использовать REST API WordPress.
Ниже представлены шаги, которые вам нужно выполнить:
1. **Создание пользовательской шаблонной страницы**: Создайте новую страницу в вашей теме WordPress, где будет размещена форма публикации статей.
2. **Добавление формы на страницу**: Используйте HTML и JavaScript для создания формы на странице. Форма должна содержать поля для заголовка статьи, текста статьи, категории, тегов и т.д.
3. **Интеграция с REST API**: Для публикации статьи используйте REST API WordPress. Вы можете сделать POST запрос на /wp/v2/posts
с данными формы. Для этого вам потребуется использовать JavaScript и отправлять AJAX запрос на API при отправке формы.
Пример AJAX запроса:
jQuery.ajax({ url: '/wp-json/wp/v2/posts', method: 'POST', data: { title: 'Название статьи', content: 'Содержание статьи', status: 'publish' }, beforeSend: function (xhr) { xhr.setRequestHeader('X-WP-Nonce', wpApiSettings.nonce); } });
4. **Обработка данных на сервере**: При получении данных от frontend формы, вы можете обработать их на сервере с помощью хука rest_api_init
. В этом обработчике вы можете создать новую запись, используя данные из запроса.
Пример обработчика данных на сервере:
add_action('rest_api_init', function() { register_rest_route('myplugin/v1', '/post', array( 'methods' => 'POST', 'callback' => 'publish_article' )); }); function publish_article(WP_REST_Request $request) { $post_data = array( 'post_title' => $request['title'], 'post_content' => $request['content'], 'post_status' => 'publish', 'post_author' => get_current_user_id() ); wp_insert_post($post_data); }
5. **Защита от CSRF атак**: Для защиты от атак CSRF, вам необходимо использовать Nonce (как показано в JavaScript коде выше).
Эти шаги позволят вам создать frontend форму публикации статей в WordPress с редактором Gutenberg. Не забудьте о проверке входных данных и аутентификации пользователя, чтобы обеспечить безопасность вашего сайта.