Функция get_delete_post_link()
в WordPress используется для получения URL ссылки на удаление поста. Это полезная функция, если вы хотите предоставить пользователям возможность удалить пост прямо с фронтенда вашего сайта, обычно с подтверждением этого действия.
Описание функции
get_delete_post_link()
возвращает URL ссылки для удаления поста. Эта функция может принимать несколько параметров для настройки возвращаемой ссылки.
get_delete_post_link( $id = 0, $deprecated = '', $force_delete = false )
Параметры
$id
(int|WP_Post): (Необязательный) ID поста или объект поста. По умолчанию используется текущий пост.$deprecated
(string): (Необязательный) Этот параметр устарел и больше не используется.$force_delete
(bool): (Необязательный) Если установлено вtrue
, пост будет удален без перемещения в корзину. По умолчаниюfalse
.
Примеры использования
Пример 1. Получение и отображение ссылки на удаление текущего поста
Этот пример показывает, как получить и отобразить ссылку на удаление для текущего поста в цикле WordPress.
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
$delete_link = get_delete_post_link();
if ( $delete_link ) {
echo '<a href="' . esc_url( $delete_link ) . '">Удалить пост</a>';
}
}
}
Пример 2. Получение ссылки на удаление для конкретного поста
В этом примере мы получим ссылку на удаление поста с ID 42 и отобразим ее.
$post_id = 42;
$delete_link = get_delete_post_link( $post_id );
if ( $delete_link ) {
echo '<a href="' . esc_url( $delete_link ) . '">Удалить пост</a>';
}
Удаление поста без перемещения в корзину
Этот пример показывает, как получить ссылку на удаление поста без перемещения его в корзину.
$post_id = 42;
$delete_link = get_delete_post_link( $post_id, '', true );
if ( $delete_link ) {
echo '<a href="' . esc_url( $delete_link ) . '">Удалить пост без корзины</a>';
}
Важно
- Проверка прав пользователя: Убедитесь, что пользователь имеет право удалять пост. Обычно это проверяется с помощью функции
current_user_can()
.
Пример с проверкой прав пользователя
Этот пример показывает, как добавить ссылку на удаление поста с проверкой прав пользователя.
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
if ( current_user_can( 'delete_post', get_the_ID() ) ) {
$delete_link = get_delete_post_link();
if ( $delete_link ) {
echo '<a href="' . esc_url( $delete_link ) . '">Удалить этот пост</a>';
}
}
}
}
Заключение
Функция get_delete_post_link()
является полезным инструментом для получения ссылки на удаление поста. Она может быть использована как на фронтенде сайта, так и в административной панели. Используйте дополнительные параметры и проверки прав для обеспечения безопасности и удобства пользователей.