0
131
2019-02-13

Как в WordPress удалять посты из внешнего интерфейса страницы

В данном посте мы рассмотрим как можно добавить простую ссылку на внешнюю часть сайта для удаления записей без нужды перехода в админ панель сайта.
Понравилась страница? Поставь свою оценку!
PLUGIN_STAR_RATINGS.SCORE_TEXTPLUGIN_STAR_RATINGS.VOTES_TEXT

Итак, допустим, у вас уже настроен сайт на WordPress, так что пользователям вообще не нужно видеть бэкэнд. Возможно, вы использовали мини-формы Gravity Forms или плагин WP-Recall (что действительно здорово), чтобы пользователи могли отправлять сообщения через интерфейс вашего сайта. Возможно, вы даже добавили свой собственный код или плагин, который позволяет вашим пользователям редактировать свои профили из внешнего интерфейса.

В общем...

Черт возьми, что если вы хотите разрешить пользователям удалять свои посты из внешнего интерфейса? Есть несколько плагинов, которые позволяют вам редактировать пост из внешнего интерфейса, но я не смог найти ни одного плагина, который позволил бы полностью удалить пост (на самом деле, мы перемещаем пост в корзину , но небольшая разница) ,

Как разрешить авторам WP удалять свои сообщения без доступа к бэкэнду

Код:

<?php if ($post->post_author == $current_user->ID) { ?>  
<p><a onclick="return confirm('Вы уверены, что хотите удалить эту запись?')" href="<?php echo get_delete_post_link( $post->ID ) ?>">Удалить запись</a></p>  
<?php } ?>  

Давайте разберемся с этим кодом, не так ли?

if ($post->post_author == $current_user->ID) {

Здесь мы проверяем, вошел ли текущий пользователь в систему и является ли он автором сообщения. Если это так, мы продолжаем, если нет, мы ничего не делаем, и пользователь не видет ссылку для удаления сообщения.

onclick="return confirm('Вы уверены, что хотите удалить эту запись?')"

Здесь мы просто используем Javascript для всплывающего окна с предупреждением о том, что пользователь хочет удалить сообщение.

echo get_delete_post_link( $post->ID )

Это встроенная функция WordPress, которая сделает всю тяжелую работу за нас.

Как использовать

Просто примените данный код:

<?php if ($post->post_author == $current_user->ID) { ?>  
<p><a onclick="return confirm('Вы уверены, что хотите удалить эту запись?')" href="<?php echo get_delete_post_link( $post->ID ) ?>">Удалить запись</a></p>  
<?php } ?>  

В файле темы single.php

Тада! Вот и все друзья :)!