проверьте, обновляет ли wordpress или публикует публикацию
Очень простой вопрос: Как я могу проверить, когда wp выполняет обновление или публикацию публикации? Потому что я должен проверить значение postmeta, которое может быть истинным только в том случае, если сообщение действительно публикуется, и поэтому оно не должно уже присутствовать в системе. Например, если (определено ('DOING_AUTOSAVE') &&DOING_AUTOSAVE) определено, когда wp выполняет автосохранение. Есть ли что-нибудь подобное, когда он делает обновление? Спасибо!!
Хорошо, итак
add_action('save_post', 'fields_news_save');
function fields_news_save($post_id){
$errors = false;
if(get_check_key($_POST['checks_news'])==0){
$errors = true;
update_option('custom_token', $errors);
update_option('custom_admin_errors', $txt_err=error_text($errors, 2));
remove_action('save_post','fields_news_save');
wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
add_action('save_post', 'fields_news_save');
return false;
}
}
"если" предложение проверяет, есть ли значения мета-сообщений, установленные как $_POST['checks_news'], и это функция, которая выполняет запрос:
function get_check_key($checker){
global $wpdb;
$data = array();
$wpdb->query("
SELECT *
FROM $wpdb->wp_postmeta
WHERE
мета_значение= $checker;
");
return $wpdb->num_rows;
}
Теперь то, что я хотел бы сделать, это "если" в начале проверяет, равно ли количество строк 0, И wp выполняет публикацию, а не обновление.
2 answers
Я избегаю этой проблемы, просто проверяя, существует ли идентификатор сообщения в базе данных.
get_post($id)==NULL
Наверное, это самый простой способ сделать то, что мне нужно.
Если вам нужно выполнить действие, когда выполняется действие "опубликовать публикацию", "сохранить публикацию" или "черновик публикации" , просто добавьте обратный вызов к соответствующему крючку действия , т. Е. publish_post
, save_post
, или draft_post
.
Если вам необходимо выполнить действие во время перехода сообщения из одного статуса в другой , то вы можете использовать соответствующий крючок перехода статуса сообщения .