从wordpress的前端删除帖子

时间:2011-12-02 22:16:26

标签: wordpress

这是我的代码:

<?php
global $wp_query;
$postid = $wp_query->post->ID;
$url = get_bloginfo('url');
  if (current_user_can('edit_post', $post->ID)){
    echo '<a href="';
    echo wp_nonce_url("$url/wp-admin/post.php?post=$postid&action=delete", 'delete-post_' . $post->ID);
    echo '">Delete your listing</a>';
  }
?>

我正在尝试删除wordpress循环之外的帖子。 当我点击链接时,我得到:

“您尝试删除此帖子:”post-name“失败。

请再试一次。“

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

查看引用,看起来current_user_can()只接受一个参数。

这里的根本原因可能是用户的权限问题。您应该检查用户是否具有 delete_posts 功能,如下所示。请注意, delete_posts 会检查用户是否可以删除自己的帖子。要检查用户是否可以删除其他用户的帖子,您可以改为使用 delete_other_posts

  if (current_user_can('delete_posts')){
    echo '<a href="';
    echo wp_nonce_url("$url/wp-admin/post.php?post=$postid&action=delete", 'delete-post_' . $post->ID);
    echo '">Delete your listing</a>';
  }

(假设您使用的是WP 2.1或更高版本)