Я сделал пользовательский тип сообщения с пользовательским метабоксом. когда я нажимаю «добавить новое сообщение» его автоматический импорт входных значений в post_meta
Таблица. как я могу это исправить? я не хочу импортировать перед публикацией сообщения. У меня есть этот код.
function wpdocs_save_meta_box_mac($post_ID = 0) {
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) {
return $post_ID;
}
$post_ID = (int) $post_ID;
$post_type = get_post_type( $post_ID );
if ( "mactahminleri" == $post_type ) {
// Sanitize user input.
$_mac_baslik = sanitize_text_field( $_POST['_mac_baslik'] );
$_mac_tarih = sanitize_text_field( $_POST['_mac_tarih'] );
$_mac_saat = sanitize_text_field( $_POST['_mac_saat'] );
$_mac_kod = ( $_POST['_mac_kod'] );
$_mac_tahmin = sanitize_text_field( $_POST['_mac_tahmin'] );
$_mac_sonuc_iy = ( $_POST['_mac_sonuc_iy'] );
$_mac_sonuc_ms = ( $_POST['_mac_sonuc_ms'] );
$_mac_oran = ( $_POST['_mac_oran'] );
$_mac_afflink = ( $_POST['_mac_afflink'] );
$_mac_durum = ( $_POST['_mac_durum'] );
// Update the meta field in the database.
update_post_meta( $post_ID, '_mac_baslik', $_mac_baslik );
update_post_meta( $post_ID, '_mac_tarih', $_mac_tarih );
update_post_meta( $post_ID, '_mac_saat', $_mac_saat );
update_post_meta( $post_ID, '_mac_kod', $_mac_kod );
update_post_meta( $post_ID, '_mac_tahmin', $_mac_tahmin );
update_post_meta( $post_ID, '_mac_sonuc_iy', $_mac_sonuc_iy );
update_post_meta( $post_ID, '_mac_sonuc_ms', $_mac_sonuc_ms );
update_post_meta( $post_ID, '_mac_oran', $_mac_oran );
update_post_meta( $post_ID, '_mac_afflink', $_mac_afflink );
update_post_meta( $post_ID, '_mac_durum', $_mac_durum );
}
return $post_ID;
}
add_action( 'save_post', 'wpdocs_save_meta_box_mac' );
когда я нажимаю, чтобы добавить новую пользовательскую публикацию, метас импортирует авто в mysql
с NULL
Вам необходимо проверить статус сообщения, прежде чем сохранять его. используемый get_post_status()
, Смотрите Кодекс для get_post_status () а также Состояние сообщения
Добавьте это условие перед сохранением мета значений
function wpdocs_save_meta_box_mac($post_ID = 0) {
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) {
return $post_ID;
}
$post_ID = (int) $post_ID;
$post_type = get_post_type( $post_ID );
if ( "mactahminleri" == $post_type ) {
if ( get_post_status ( $post_ID ) == 'publish' ) {
// Sanitize user input.
$_mac_baslik = sanitize_text_field( $_POST['_mac_baslik'] );
$_mac_tarih = sanitize_text_field( $_POST['_mac_tarih'] );
$_mac_saat = sanitize_text_field( $_POST['_mac_saat'] );
$_mac_kod = ( $_POST['_mac_kod'] );
$_mac_tahmin = sanitize_text_field( $_POST['_mac_tahmin'] );
$_mac_sonuc_iy = ( $_POST['_mac_sonuc_iy'] );
$_mac_sonuc_ms = ( $_POST['_mac_sonuc_ms'] );
$_mac_oran = ( $_POST['_mac_oran'] );
$_mac_afflink = ( $_POST['_mac_afflink'] );
$_mac_durum = ( $_POST['_mac_durum'] );
// Update the meta field in the database.
update_post_meta( $post_ID, '_mac_baslik', $_mac_baslik );
update_post_meta( $post_ID, '_mac_tarih', $_mac_tarih );
update_post_meta( $post_ID, '_mac_saat', $_mac_saat );
update_post_meta( $post_ID, '_mac_kod', $_mac_kod );
update_post_meta( $post_ID, '_mac_tahmin', $_mac_tahmin );
update_post_meta( $post_ID, '_mac_sonuc_iy', $_mac_sonuc_iy );
update_post_meta( $post_ID, '_mac_sonuc_ms', $_mac_sonuc_ms );
update_post_meta( $post_ID, '_mac_oran', $_mac_oran );
update_post_meta( $post_ID, '_mac_afflink', $_mac_afflink );
update_post_meta( $post_ID, '_mac_durum', $_mac_durum );
}
}
return $post_ID;
}
add_action( 'save_post', 'wpdocs_save_meta_box_mac',99,1 );
Других решений пока нет …