从前端删除附件

时间:2011-12-13 作者:v3nt

以管理员身份登录并尝试编写删除帖子的代码以删除附件。

得到,

<?php if (current_user_can(\'edit_post\', $attachment->ID)) 
echo "<a href=\'" . wp_nonce_url("/wp-admin/post.php?action=delete&amp;post=".$attachment->ID."", \'delete-post_\' . $attachment->ID) . "\'>Delete</a>" ?>
但它只是把我带到一个页面,上面写着;

是否确实要执行此操作?请重试

请重试链接返回到帖子。。。

这和delete-post_

最好的,丹。

1 个回复
最合适的回答,由SO网友:v3nt 整理而成

最终使用ajax。。。

html;

<a class="remImage" name="<?php echo $attachment->ID; ?>" href="#"><?php _e(\'delete\');?></a>  <input type="hidden" id="att_remove" name="att_remove[]" value="<?php echo $attachment->ID; ?>" />
<input type="hidden" name="nonce" id="nonce" value="<?php echo wp_create_nonce( \'delete_attachment\' ); ?>" />
jquery

$(\'.remImage\').live(\'click\', function() {
    var attID = jQuery(this).attr(\'name\');
    jQuery.ajax({
        type: \'post\',
        url: \'/wp-admin/admin-ajax.php\',
        data: {
            action: \'delete_attachment\',
            att_ID: jQuery(this).attr(\'name\'),
            _ajax_nonce: jQuery(\'#nonce\').val(),
            post_type: \'attachment\'
        },
        success: function() {
            console.log(\'#file-\'+attID)
            $(\'#file-\'+attID).fadeOut();    
        }
});
在函数中。php

add_action( \'wp_ajax_delete_attachment\', \'delete_attachment\' );
function delete_attachment( $post ) {
    //echo $_POST[\'att_ID\'];
    $msg = \'Attachment ID [\' . $_POST[\'att_ID\'] . \'] has been deleted!\';
    if( wp_delete_attachment( $_POST[\'att_ID\'], true )) {
        echo $msg;
    }
    die();
}

结束

相关推荐

Front-End Post Submission

我正在尝试添加一个表单,用户可以从前端提交帖子。我正在学习本教程:http://wpshout。com/wordpress从前端提交帖子/我正在做的是添加this code 到我的一个页面模板。表单显示正常,但当我单击“提交”按钮时,它会显示“Page not found error“”许多评论者说这不起作用。谁能给我指出正确的方向吗?代码是否不完整?有缺陷吗?我做错什么了吗?谢谢Towfiq I。