2012-06-01 69 views
0

我試圖使用WordPress GET)submit_button(),以我的插件頁面上創建一些按鈕來刪除Meta鍵WordPress的自定義元框更新按鈕(get_submit_button)

我用

get_submit_button(__('Delete'), "delete:the-list:meta-{$entry['meta_id']}::_ajax_nonce=$delete_nonce deletemeta", "deletemeta[{$entry['meta_id']}]", false, array('tabindex' => '6')); 

已也爲此創建了新的nonce代碼。

但即時得到 - 你沒有權限或類似的

我怎麼解決這個事情?

回答

0

林不知道你的插件是如何設置, 但我所做的就是創建我的形式,刪除任何內容包括現時

<input type="hidden" name="mybox_meta_box_nonce" value="<?php wp_create_nonce(basename(__FILE__));?>" /> 

包括這我的表單中,那麼您只需建立手動提交按鈕,0​​提交表單爲正常,然後用你的代碼,檢查提交

形式,即:

<?php 
// using another hidden field within the form 
if(isset($_POST['action']) && ($_POST['action']=='remove')){ 
    $post_meta_key = $_POST['meta_key']; 
    $post_meta_value = $_POST['metavalue']; 
    $postid = $_POST['postid']; 
    delete_post_meta($post_id, $meta_key, $meta_value); 
    echo '<div id="message" class="updated fade">Post meta deleted.</div>'; 
} 
?> 

希望這可以幫助你出一點

馬蒂

+0

以及這可以勉強工作,但我preffer使用內置ajax方法在admin-ajax如果可能 –

0

解決它......

所有需要的是一個額外的隨機數場

wp_nonce_field('change-meta', '_ajax_nonce', false, false); 

所以我的代碼如下所示:

$delete_nonce = wp_create_nonce('delete-meta_' . $meta_id); 
$output.=get_submit_button(__('Delete'), "delete:the-list:meta-{$meta_id}::_ajax_nonce=$delete_nonce deletemeta", "deletemeta[{$meta_id}]", false, array('tabindex' => '6')); 
$output.=wp_nonce_field('change-meta', '_ajax_nonce', false, false); 

和....它的工作:-)