这是我的代码:
<?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“失败。
请再试一次。“
有谁知道为什么会这样?
答案 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或更高版本)