it-swarm.asia

neden bir revizyon olduğunda meta verileri kaydetmiyorum

wordpress hakkında bir kitap okuyorum ... 1 seferde çok fazla soru sorarsam özür dilerim ama yeni ve kafam karıştı

neden bir revizyon olduğunda yazar her zaman meta veri kutusuna veri kaydetmez. sadece açık değilse, meta veri kutusu ile bahsettiğim add_meta_box tarafından eklenen.

//save meta box data 
function pp_save_meta_box($post_id,$post) {
    // if post is a revision skip saving our meta box data
    if($post->post_type == ‘revision’) { return; }

    // process form data if $_POST is set
    if(isset($_POST[’pp_sku’]) && $_POST[’pp_sku’] != ‘’) {
        // save the meta box data as post meta using the post ID as a unique prefix
        update_post_meta($post_id,’pp_sku’, esc_attr($_POST[’pp_sku’]));
        update_post_meta($post_id,’pp_price’, esc_attr($_POST[’pp_price’]));
        update_post_meta($post_id,’pp_weight’, esc_attr($_POST[’pp_weight’]));
        update_post_meta($post_id,’pp_color’, esc_attr($_POST[’pp_color’]));
        update_post_meta($post_id,’pp_inventory’,esc_attr($_POST[’pp_inventory’]));
    }
}
1
Jiew Meng

Bu işlevin nasıl adlandırıldığını ihmal ettiniz. save_post aksiyon.

Bu eylem, geçerli gönderi kimliğini bağımsız değişken olarak geçirir. Düzeltme durumunda, üst posta kimliği değil, düzeltme kimliği olacaktır. Gördüğüm gibi, revizyon için ek veri kaydetmek için hiçbir neden yok (yinelenen küme oluşturma).

Güncellemesi.

Çizik.

Kaynak kodunu inceledim. Görünüşe göre *_post_meta işlevleri, revizyon sonrası kimlik kimliği geçildiyse otomatik olarak üst gönderi kimliği olarak değişecektir. Bu nedenle, revizyonu değiştirdiğinizi düşünerek orijinal yayını değiştirebilirsiniz.

3
Rarst

postmeta tabloma baktığımda, yazı revizyonları için hiçbir meta veri kaydedilmedi. Bu şekilde olması gerektiğini düşünmüyorum: Eklentilerin revizyonlar için ek meta veriler kaydetmesinin yararlı olacağı bazı kullanım durumlarını da düşünebilirim. Örneğinizi, muhtemelen bir web mağazası örneğinden alın: önce 20 TL'lik bir fiyatla bir ürün oluşturursam, daha sonra fiyatı 10 TL'ye düşürürseniz, bu eski metin alanlarını düzeltme olarak kaydeder, ancak eski fiyat alanlarını siler . Fiyatların geçmişini kaydetmek de yararlı olabilir.

Meta verilerle ilgili işlevlerin, meta verilerin revizyonları ile çalışmayı tam olarak desteklemediğini varsayıyorum, bu nedenle henüz eklentilerden çok fazla destek beklememeliyiz. Ancak, bir eklenti oluşturursanız, geçmiş meta verileri kaydetmenin (ve almanın) nasıl faydalı olabileceğini unutmayın.

1
Jan Fabry