get_delete_post_link() WP 2.9.0

Отримує посилання (URL) для видалення поста.

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

Якщо користувач не має прав для видалення посту, поверне порожній рядок.

Хуки з функції
get_delete_post_link($id, $deprecated, $force_delete);
$id
(число) (обов’язковий)
ID запису.
$deprecated
Параметр заборонено з версії 3.0.


За замовчуванням: ”
$force_delete
(логічний)
true — видалятиме запис повз кошик.


Типово: false

Приклади

0

#1 Приклад роботи get_delete_post_link():

echo get_delete_post_link(1);

// поверне: http://example.com/wp-admin/post.php?post=1&action=delete&_wpnonce=d21da8cad3
0

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

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

#3 Виведемо посилання тільки якщо у користувача є достатні для видалення права:

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

список змін

З версії 2.9.0Введено.

Код get_delete_post_link() WP 6.0.2

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

	$post = get_post($id);
	if (! $post) {
		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 );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *