我正在尝试使用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 :(得分: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 );
和......工作: - )