get_delete_post_link

Получает ссылку (URL) на удаление поста.

Может быть использована для перемещения поста в корзину, удаления страниц, постов, вложений и ревизий.

Если у пользователя не достаточно прав для удаления поста, вернет пустую строку.

Хуки из функции:
get_delete_post_link
Возвращает

строку содержащую URL.

Использование

get_delete_post_link( $id, $deprecated, $force_delete );
$id(число) (обязательный)
ID записи.
По умолчанию: нет
$deprecated
Параметр запрещен с версии 3.0.
По умолчанию: ”
$force_delete(логический)
true — будет удалять запись мимо корзины.
По умолчанию: false

Примеры

#1. Пример работы get_delete_post_link():

echo get_delete_post_link( 1 );

// вернет: http://site.ru/wp-admin/post.php?post=1&action=delete&_wpnonce=d21da8cad3

#2. Полная ссылка на удаление поста:

echo '<a href="'. get_delete_post_link() .'">удалить пост</a>';

#3. Выведем ссылку, только если у пользователя есть достаточные для удаления права:

if( current_user_can( 'delete_posts' ) ) {
	echo '<a href="'. get_delete_post_link( $post->ID) .'">Удалить без возможности восстановления</a>';
}

Код из


wp-includes/link-template.php

WP 4.7.2

<?php
function get_delete_post_link( $id = 0, $deprecated = '', $force_delete = false ) {
	if ( ! empty( $deprecated ) )
		_deprecated_argument( __FUNCTION__, '3.0.0' );

	if ( !$post = get_post( $id ) )
		return;

	$post_type_object = get_post_type_object( $post->post_type );
	if ( !$post_type_object )
		return;

	if ( !current_user_can( 'delete_post', $post->ID ) )
		return;

	$action = ( $force_delete || !EMPTY_TRASH_DAYS ) ? 'delete' : 'trash';

	$delete_link = add_query_arg( 'action', $action, admin_url( sprintf( $post_type_object->_edit_link, $post->ID ) ) );

	/**
	 * Filters the post delete link.
	 *
	 * @since 2.9.0
	 *
	 * @param string $link         The delete link.
	 * @param int    $post_id      Post ID.
	 * @param bool   $force_delete Whether to bypass the trash and force deletion. Default false.
	 */
	return apply_filters( 'get_delete_post_link', wp_nonce_url( $delete_link, "$action-post_{$post->ID}" ), $post->ID, $force_delete );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *