Вопрос или проблема
При создании страницы или поста WordPress позволяет сохранять контент (заголовок, текст, обложку) с помощью Ctrl + S. Пользовательские поля не сохраняются таким же образом (в этом случае я использую Advanced Custom Fields, но это происходит и без этого плагина).
У кого-нибудь есть решение для сохранения этих данных так же? В этом случае публикация не является вариантом.
ОБНОВЛЕНИЕ: Если я нажимаю кнопку “Сохранить черновик”, пользовательские поля сохраняются. Сохранение ctrl + S, похоже, ограничивается только областью контента. Есть ли простой способ изменить это на глобальное сохранение поста с помощью ctrl S? Кнопка “Сохранить черновик” к счастью снимает срочность, но это было бы удобно!
Я только что написал плагин, который именно это и делает. На этой неделе он был отправлен в репозиторий плагинов WordPress.org и надеюсь, скоро появится. Плагин официально в репозитории WordPress.org. Короче говоря, то, что вам нужно, – это способ иметь следующий код в вашем редакторе постов:
jQuery(window).bind('keydown', function(event) {
if (event.ctrlKey || event.metaKey) {
if(String.fromCharCode(event.which).toLowerCase() === 's' ) {
event.preventDefault();
if ( typeof wpkeysave_save_trigger !== 'undefined' ){
// жесткий способ сохранить черновик/опубликовать/обновить
jQuery( '#' + wpkeysave_save_trigger ).trigger( 'click' );
}
}
}
});
Обновление: Плагин официально в репозитории WordPress.org и будет активно поддерживаться.
Ответ или решение
Как сохранить данные пользовательских полей перед публикацией в WordPress
В процессе создания страниц или записей в WordPress, многие пользователи сталкиваются с проблемой сохранения пользовательских полей (custom fields) при использовании сочетания клавиш Ctrl + S. В отличие от основного содержимого (заголовка, текста и изображения), данные пользовательских полей не сохраняются автоматически. Это может стать причиной потери данных и добавляет лишнюю нагрузку на процесс редактирования. В данном ответе рассмотрим способы решения этой проблемы и предложим оптимальное решение.
Проблема: отсутствие автоматического сохранения
Основной недостаток заключается в том, что при нажатии сочетания клавиш Ctrl + S сохраняются только текстовые поля, тогда как пользовательские поля (в том числе создаваемые с помощью плагина Advanced Custom Fields) требуют отдельного сохранения через кнопку «Сохранить черновик». Это может подрывать эффективность работы и вызывать неудобства для пользователей, которые привыкли к более стремительному процессу сохранения.
Возможное решение через плагин
На основе обсуждений в сообществе WordPress, было разработано решение в виде плагина, который позволяет привязать сохранение пользовательских полей к нажатиям клавиш Ctrl + S. Этот плагин, который был успешно представлен в репозитории WordPress, использует следующий код:
jQuery(window).bind('keydown', function(event) {
if (event.ctrlKey || event.metaKey) {
if(String.fromCharCode(event.which).toLowerCase() === 's' ) {
event.preventDefault();
if ( typeof wpkeysave_save_trigger !== 'undefined' ){
// жесткий способ сохранить черновик/опубликовать/обновить
jQuery( '#' + wpkeysave_save_trigger ).trigger( 'click' );
}
}
}
});
Этот код привязывает обработчик событий к окну, который реагирует на нажатие клавиш Ctrl + S. При выполнении данного действия он предотвращает стандартное поведение браузера (например, открытие диалогового окна сохранения страницы) и инициирует клик по кнопке сохранения, что позволяет сохранить пользовательские поля вместе с остальным контентом.
Альтернативные подходы
Помимо использования плагина, можно рассмотреть и другие подходы:
-
Создание пользовательского скрипта: Если у вас есть навыки разработки, вы можете интегрировать подобный скрипт непосредственно в тему или в файл функций вашего сайта (functions.php). Однако данный метод требует осторожности и понимания работы с JavaScript в WordPress.
-
Использование существующих плагинов: Возможно, в будущем будут представлены другие решения, которые более эффективно будут сочетать автоматическое сохранение всех данных, включая пользовательские поля. Следует следить за обновлениями в репозитории плагинов WordPress.
Заключение
Сохранение данных пользовательских полей в WordPress при помощи сочетания клавиш Ctrl + S может значительно улучшить пользовательский опыт и повысить продуктивность авторов контента. Использование предложенного плагина или разработка собственного решения поможет избежать дополнительных усилий, связанных с ручным сохранением данных. Важно поддерживать актуальность ваших инструментов и методик, чтобы оптимизировать процесс создания контента и снижения стресса при работе с WordPress.