Удалить пост из переднего конца WordPress - PullRequest
1 голос
/ 03 декабря 2011

Вот код, который у меня есть:

<?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 голосов
/ 04 декабря 2011

Глядя на ссылку, это выглядит так: 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 или новее)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...