2011-12-31 3 views
0

В Wordpress мне нужно запрограммировать его так, чтобы в любое время кто-то входил или обновлял метатет пост «start_date», бит кода запускается над тем, что введено до его сохранения.Фильтр Wordpress при добавлении мета?

Мне нужно взять то, что введено, и преобразовать его в временную метку unix.

Есть ли способ сделать это?

Если нет, есть ли способ добавить код для публикации или обновления сообщения, чтобы он проверял эту мета и обновлял ее, если это необходимо?

ответ

0

Предполагая, что вы создаете метабокс и настраиваемые поля с помощью своего плагина, вы можете сделать следующее. В противном случае это зависит от того, как они сохраняют данные, поскольку они могут перезаписать ваши.

Вот что вам поможет, но в зависимости от того, что это за дело.

add_action('save_post', 'update_the_post_meta', 100, 2); 
function update_the_post_meta($post_id, $post) { 

    if (defined('DOING_AJAX') && DOING_AJAX) { return; } 
    if (defined('DOING_CRON') && DOING_CRON) { return; } 
    if ($post->post_type == 'revision') { return; } 

    if (isset($_REQUEST['start_date'])) : 
     //do your timestamp code here and save it in $timestamp 
     add_post_meta($post_id, 'start_date', $timestamp, true) or update_post_meta($post_id, 'start_date', $timestamp); 
    else : 
     delete_post_meta($post_id, 'start_date'); 
    endif; 

} 

В настоящий момент приоритет для add_action равен 100 (чем выше число, тем меньше приоритет). Итак, если вы пытаетесь переопределить чужую функцию, вам может потребоваться увеличить номер приоритета. Кроме того, это предполагает, что имя поля ввода «start_date».