wordpress自定义元框更新按钮(get_submit_button)

时间:2012-06-01 10:17:43

标签: wordpress

我正在尝试使用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代码。

但是我得到了 - 你没有权限或类似的东西

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

阅读文档:http://codex.wordpress.org/Function_Reference/get_submit_button

第二个参数不正确。 因此,其他人也是不正确的

答案 1 :(得分:0)

我不确定你的插件是如何设置的, 但我所做的是创建我的表单,删除任何内容包括nonce

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

在我的表单中包含此内容,然后手动创建提交按钮, 正常提交表格,然后使用您的代码,检查提交的表格

即:

<?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>';
}
?>

希望这能帮到你一点

玛蒂

答案 2 :(得分:0)

解决了......

所需要的只是一个额外的nonce字段

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 );

和......工作: - )