Обновление дополнительного (созданного) поля в таблице wp_posts
Добавил новое поле в таблицу wp_posts, column = coin
При обновлении поста, поле просто не обновляется, игнорируется как будто его просто нет.
function dl_create_post($post_id) { $new_post_atr = array( 'ID' => 1, 'coin' => 12, 'post_title'=> '553' ); if (!wp_is_post_revision($post_id)) { // удаляем этот хук, чтобы он не создавал бесконечного цикла remove_action('save_post', 'dl_create_post'); // обновляем пост, когда снова вызовется хук save_post wp_update_post($new_post_atr); // снова вешаем хук add_action('save_post', 'dl_create_post'); } // Обновляем данные в БД } add_action('save_post', 'dl_create_post');
Вам нужно отдельно указать поле coin. По умолчанию обрабатываются только эти поля (из кода wp_insert_post()):
Сделать это можно через фильтр:
Т.е. для вас код будет такой (не проверял отпишитесь плз):
Так мы добавили в обработку поле 'coin' во время обновления/создания записи. Но тут разумеется, как в вашем примере нужно указывать поле отдельно:
Этот хук нужно разместить до вашего кода, т.е. до того, как будет вызвана функция wp_insert_post() или wp_update_post().
П.С. для подробной информации зайдите в описание wp_insert_post() и загляните в её код...
После Тимура, конечно, добавить уже нечего. У меня один вопрос, почему не использовали произвольные поля для решения такой задачи? Они ведь как раз для этого и созданы!
Здравствуйте,
Тема моя.
Первоначально решил проблему добавлением отдельно поля в массив.
Но потом пришёл к выводу, что это крайне неправильно, так как нарушает целостность ядра и пошел по пути создания отдельной таблицы.
В принципе сейчас все данные так и хранятся, в отдельной таблице, которая создаётся при активации плагина.
На сайте не нашёл информации по монетизации плагинов.
Сейчас пишу плагин, бесплатную часть, но хочу написать дополнение для продажи. Если пользователь хочет расширенный функционал себе установить, то необходимо плагин скачать у меня на сайте.