2012-04-19 2 views
0

В моем настраиваемом типе сообщения, после сохранения пользователем сообщения, есть ли способ проверить значение одного из полей и обновить его? Значение, которое я вставляю, будет зависеть от идентификатора сообщения, поэтому save_post необходимо использовать в случае, если это новое сообщение.Изменить пользовательское поле после save_post

+0

Возможно, я неправильно понял что-то, но похоже, что ответ на ваш вопрос. – Rob

+0

Извините, но я пытаюсь изучить веревки с помощью 'add_action'. Возможно, вы можете опубликовать что-то, что другие пользователи, как я, могут работать в следующий раз. – enchance

ответ

1

Да, вы можете иметь все ваши данные от $_POST или global $post после сохранения или обновления пост using save_post hook as you mentioned in your question

add_action('save_post', 'afterSavePost'); 
function afterSavePost($pid) 
{ 
    $postId=$pid; 
    // or 
    global $post; 
    $postId=$post->ID; 
    $postTitle=$post->post_title; 
    // or 
    $postId=$_POST['ID']; 
    $postTitle=$_POST['post_title']; 
} 

Вы упомянули custom field и в этом случае вы можете использовать

$yourCustomField=get_post_meta($postId, 'your_custom_field',true); // get a custom field 

и

$yourCustomField="New value"; 
update_post_meta($postId, 'your_custom_field', $yourCustomField); // update a custom field 
+0

Я пытаюсь использовать свою команду, используя 'add_action', но не изменяя' $ _POST' бесполезно, так как форма уже сохранена в db? – enchance

+0

Извините! не понял, что вы просили. –

+0

Я нахожу 'get_post_meta()' не возвращает отправленные пользовательские поля при первом создании сообщения, но это происходит при обновлении сообщения. Это немного удивительно для меня, поэтому задавался вопросом, есть ли другое действие для обработки такого рода вещей, когда сообщения сначала создаются. – Jason

Смежные вопросы