Я уже писал о функции, которая помогает администратору редактировать , помечать как спам и удалять комментарии, не заходя в административную часть сайта. Однако меня тут же обескуражили вопросом, а можно ли сделать то же самое с постами – удалять их, не заходя в админку? Порывшись в интернете и изучив материалы по этой теме, я понял, что и это возможно.
Ссылка для редактирования поста или страницы появляется у вас и так автоматически. Давайте сделаем рядом с ней еще одну ссылку, кликнув по которой, вы отправите пост в корзину.
Откройте файл functions.php и вставьте в него такой код:
function wp_delete_post_link($link = 'Delete This', $before = '', $after = '') { global $post; if ( $post->post_type == 'page' ) { if ( !current_user_can( 'edit_page', $post->ID ) ) return; } else { if ( !current_user_can( 'edit_post', $post->ID ) ) return; } $link = "<a>ID, 'delete-post_' . $post->ID) . "'>".$link."</a>"; echo $before . $link . $after; }
Этот код создает функцию, которая выводит ссылку на удаление. Ссылка эта доступна только тем, кто наделен соответствующими правами – то есть по умолчанию только администратору блога. Теперь осталось вывести эту ссылку в нужном месте. Для этого нужно вставить в single.php или а page.php, в цикл, где выводится содержимое, такой код:
<?php wp_delete_post_link('Удалить', '<p>', '</p>'); ?>
Обратите внимание, что в качестве аргументов функции выступают название ссылки и разметка HTML до и после этой ссылки. Пользуйтесь!

Классно. Как-раз начинаю понимать PHP, вот и примеры жизненные находятся ^_^
Начиная с версии 2.9, можно также воспользоваться встроенной функцией
. В этом случае достаточно добавить подобный фрагмент внутри основного цикла:
Спасибо за подсказку!
вы хоть сами пользуетесь этими функциями? в курсе что после удаления таким способом идет переход на несуществующую страницу
Я удалял с главной, поэтому ошибка проявилась не сразу. Чтобы после удаления происходил переход на главную страницу, можно добавить фрагмент в functions.php активной темы:
Да, в курсе. Мне кажется, что так оно и лучше – движок как бы дает знать, что такой страницы уже действительно не существует – на то она и 404 страница.
Если удалять с главной страницы или из архива, то переход идет на существующую страницу.
Ваш метод
и тот, кторый предложил Сергей Бирюков для вставки в functions.php
– оба дают одинаковый результат и работают правильно. Спасибо!
Замечательный сайт, нашел здесь ответ на вопрос который нигде не мог найти. Огромное спасибо!
Маленький вопрос по теме, после удаления поста редирект ведет на главную сайта, а можно ли сделать чтоб перенаправляло на страницу на которой был..?
И после вставки кода
в functions.php появилась ошибочка, после замены
на
все пришло в норму.
Так а как переправить на страницу, которую вы только что удалили?
если удалена страница на которой был – понятно… а если нахожусь на 12 странице на которой анонсы статей… удаляю статью и перекидывает на 1 страницу, а нужно чтоб снова на 12…
пример с моим сайтом…
я хочу удалить статью анонс которой находится на второй странице
после удаления меня перенаправит на , можно ли сделать чтоб в данном случае перенаправило снова на http://news-info.net/?paged=2…?
Обратите внимание, что речь идет не о странице полной статьи…
Не знаю, будет ли работать… можно попробовать встроить редирект в функцию:
не получается, да и ладно и так нормальный вариант, спасибо за оказаную помощь =)
вопрос не по теме, как добавить на страницу код типа яваскрипт так чтоб он отображался в виде простого текста, а не выполнялся?
всмысле создаю страницу через админку и пишу текст страницы, в котором надо написать код <script type="text……… и никак не могу это воплотить так как скрипт выполняется…
https://n-wp.ru/tag/code
спасибо огромное! =)