0

我正在尝试使用 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' ) );

还为此创建了新的随机数代码。

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

我该如何解决这个问题?

4

3 回答 3

0

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

第二个论点是不正确的。并且因为其他人也是不正确的

于 2012-06-01T11:03:54.540 回答
0

我不确定你的插件是如何设置的,但我所做的是创建我的表单,删除任何东西,包括随机数

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

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

IE:

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

希望这对您有所帮助

马蒂

于 2012-06-01T11:09:42.983 回答
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 );

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

于 2012-06-01T12:21:29.157 回答