WordPress'te Hiç Bir Değeri olmayan Özel Alanları Yazıyı Yayınlarken Kaldırma


Soru CevapCategory: WordpressWordPress'te Hiç Bir Değeri olmayan Özel Alanları Yazıyı Yayınlarken Kaldırma
mehmet asked 4 ay ago

Özel alanları otomatik olarak üreten bazı eklentilerim var. “Yayınla” düğmesine bastığımda boş özel alanları otomatik olarak nasıl gönderileceğini bilen var mı?

1 Answers
degre Staff answered 4 ay ago

Maalesef WordPress API’sı, özel alanların ‘boş’ bir değere sahip olmadığını update_post_meta ve (önceki) meta değeri delete_post_meta verildiğinde ”, bu tuşun tüm değerleri için güncelleme / silme işlemini gerçekleştirdiğini varsayar .

Aşağıda temel mantık var: Yalnızca tüm ilişkili alanların “boş” olduğu alanları kaldıracak . Tam olarak ‘ boş ‘ demek, array_filter aşağıdaki kodda kullanılan ‘0’, yanlış vb. Gibi bir geri bildirimi varsayılan olarak belirleyerek karar verebilirsiniz .

add_action('save_post','my_cf_check');
function my_cf_check($post_id) {

    if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;

    if (!current_user_can('edit_post', $post_id)) return;

     $custom_fields = get_post_custom($post_id);

    if(!$custom_fields) return;

    foreach($custom_fields as $key=>$custom_field):
        $values = array_filter($custom_field);

        if(empty($values)):
            delete_post_meta($post_id,$key)
        endif;
    endforeach; 
    return;
}
Your Answer