Для выполнения функции при изменении значения в WordPress можно использовать хук (hook) save_post
. Этот хук срабатывает каждый раз, когда выполняется сохранение поста или страницы.
Вот как можно использовать этот хук для выполнения определенной функции:
1. Вам необходимо определить функцию, которая будет выполняться при изменении значения. Например, допустим, вы хотите обновить мета-данные при сохранении поста. Вот пример функции:
function update_post_meta_on_save( $post_id ) { // Проверяем, является ли это сохранением поста if ( wp_is_post_revision( $post_id ) || wp_is_post_autosave( $post_id ) ) { return; } // Обновляем требуемые мета-данные update_post_meta( $post_id, 'my_meta_key', 'new_meta_value' ); }
2. Затем вам необходимо привязать эту функцию к хуку save_post
с помощью функции add_action
в файле functions.php вашей темы или в плагине. Вот пример:
add_action( 'save_post', 'update_post_meta_on_save' );
Теперь, когда вы сохраняете пост или страницу, функция update_post_meta_on_save
будет выполняться и обновлять указанные мета-данные.
Отлично, вы привязали функцию к хуку save_post
, чтобы она выполнялась каждый раз, когда происходит сохранение поста или страницы. Но что, если вы хотите запускать эту функцию не вручную при сохранении, а в определенное время, используя крон задачу?
WordPress предлагает инструмент wp_schedule_event()
, который позволяет создавать периодические задачи (cron jobs). Ваша крон задача будет действовать таким образом, что функция будет выполняться автоматически в заданное время.
1. Вам нужно определить функцию, которую вы хотите выполнять. Например:
function update_post_meta_cron() { // Обновляем необходимые мета-данные update_post_meta( 123, 'my_meta_key', 'new_meta_value' ); }
2. Затем вам нужно создать или редактировать функцию, которая будет создавать крон задачу. Вот пример:
function setup_my_cron_job() { if ( ! wp_next_scheduled( 'my_cron_hook' ) ) { wp_schedule_event( time(), 'daily', 'my_cron_hook' ); } } add_action( 'wp', 'setup_my_cron_job' );
3. И, наконец, вам нужно привязать созданную вами функцию update_post_meta_cron
к хуку крон задачи. Вот пример:
add_action( 'my_cron_hook', 'update_post_meta_cron' );
Теперь функция update_post_meta_cron
будет автоматически выполняться каждый день в заданное вами время, обновляя указанные мета-данные.
Убедитесь, что это время соответствует требуемому периоду выполнения вашей крон задачи, и что вы правильно настроили и активировали доступ к cron jobs на вашем сервере.
В заключение, использование хука save_post
или крон задачи в WordPress позволяет вам выполнять функции при изменении значения или в определенное время соответственно.