函数文档

wp_ajax_delete_link()

💡 云策文档标注

概述

wp_ajax_delete_link() 是一个 WordPress AJAX 处理函数,用于安全删除链接。它验证用户权限和请求,执行删除操作并返回结果。

关键要点

  • 函数通过 AJAX 处理链接删除请求,接收 POST 参数中的链接 ID。
  • 使用 check_ajax_referer() 验证 AJAX 请求的安全性,防止外部攻击。
  • 检查当前用户是否具有 'manage_links' 权限,无权限则终止执行。
  • 通过 get_bookmark() 获取链接数据,验证链接是否存在或是否为 WP_Error。
  • 调用 wp_delete_link() 执行删除,成功返回 1,失败返回 0,使用 wp_die() 输出结果。

代码示例

function wp_ajax_delete_link() {
    $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;

    check_ajax_referer( "delete-bookmark_$id" );

    if ( ! current_user_can( 'manage_links' ) ) {
        wp_die( -1 );
    }

    $link = get_bookmark( $id );
    if ( ! $link || is_wp_error( $link ) ) {
        wp_die( 1 );
    }

    if ( wp_delete_link( $id ) ) {
        wp_die( 1 );
    } else {
        wp_die( 0 );
    }
}

注意事项

  • 函数依赖于 WordPress 核心函数如 check_ajax_referer、current_user_can 和 wp_delete_link,确保在正确环境中使用。
  • 返回值为整数状态码,-1 表示权限不足,1 表示链接不存在或删除成功,0 表示删除失败。
  • 自 WordPress 3.1.0 版本引入,使用时需考虑版本兼容性。

📄 原文内容

Handles deleting a link via AJAX.

Source

function wp_ajax_delete_link() {
	$id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;

	check_ajax_referer( "delete-bookmark_$id" );

	if ( ! current_user_can( 'manage_links' ) ) {
		wp_die( -1 );
	}

	$link = get_bookmark( $id );
	if ( ! $link || is_wp_error( $link ) ) {
		wp_die( 1 );
	}

	if ( wp_delete_link( $id ) ) {
		wp_die( 1 );
	} else {
		wp_die( 0 );
	}
}

Changelog

Version Description
3.1.0 Introduced.