2016-03-25 34 views
0

Meta kutuları eklemeye çalıştığım bir Özel Yazı Türü 'media-page-items' oluşturdum. Şu anda meta kutular gösteriyor ancak veritabanına kaydetmiyor. Üzerinde birkaç farklı yaklaşım denedim ve hiçbiri veritabanına kaydetmiyor.Wordpress Özel Mesaj Tipi Meta Kutu veritabanına kaydetmiyor

Hata ayıklama açık, ancak şu anda göremediğim hatalar atılıyor.

Herhangi bir yardım çok takdir edilmektedir! Eğer plugin_basename(__FILE__) kullandığınız wp_create_nonce yılında

//add article link to media page item 
add_action('admin_menu', 'gruman_article_link_create'); 
add_action('save_post', 'gruman_article_link_save', 10, 2); 

function gruman_article_link_create() { 
    add_meta_box('gruman-article-link', 'Article Link', 'gruman_article_link', 'media-page-items', 'advanced', 'high'); 
} 

function gruman_article_link($post) { 
    // retrieve the _gruman_article_title current value 
    $current_article_link = get_post_meta($post->ID, '_gruman_article_link', true); 

?> 
    <p> 
     <label>Article Link</label> 
     <br /> 
     <input name="gruman-article-link" id="article-link" style="width: 97%;"><?php $current_article_link; ?>/> 
     <input type="hidden" name="gruman_article_link_nonce" value="<?php echo wp_create_nonce(plugin_basename(__FILE__)); ?>" /> 
    </p> 
<?php } 

function gruman_article_link_save($post_id) { 
    // verify taxonomies meta box nonce 
    if (!isset($_POST['gruman_article_link_nonce']) || !wp_verify_nonce($_POST['gruman_article_link_nonce'], basename(__FILE__))){ 
    return $post_id; 
    } 

    // return if autosave 
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ 
     return $post_id; 
    } 

    // Check the user's permissions. 
    if (!current_user_can('edit_post', $post_id)){ 
     return $post_id; 
    } 

    // store article title value 
    if (isset($_REQUEST['gruman-article-link'])) { 
     update_post_meta($post_id, '_gruman_article_link', sanitize_text_field($_POST['gruman-article-link'])); 
    } 

} 

cevap

1

. Ve olmayanı doğruladığınızda, eylem adı olarak basename(__FILE__) kullanın. Bu değerler aynı değil. Birincisi my-plugin/my-plugin.php gibi bir şey döndürecek ve ikincisi my-plugin.php olacaktır. Bu yüzden wp_verify_nonce False döndürdüğüne ve verilerinizin kaydedilmediğine inanıyorum.

+0

Ah! Bunun gibi küçük bir şey olacağını biliyordum. Çok teşekkürler. Bu düzeltildi. – Mark