函数文档

wp_ajax_wp_link_ajax()

💡 云策文档标注

概述

wp_ajax_wp_link_ajax() 是一个 WordPress AJAX 处理函数,用于通过 AJAX 处理内部链接查询请求。它验证请求、处理搜索参数,并调用 _WP_Editors::wp_link_query() 来获取结果,最后以 JSON 格式返回。

关键要点

  • 函数用于处理内部链接的 AJAX 请求,确保安全性和数据完整性。
  • 使用 check_ajax_referer() 验证 AJAX 请求,防止外部攻击。
  • 处理 $_POST 参数如 'search' 或 'term' 作为搜索关键词,并支持分页参数 'page'。
  • 调用 _WP_Editors::wp_link_query() 执行实际的帖子查询,返回内部链接结果。
  • 结果以 JSON 格式输出,使用 wp_json_encode() 编码,并在完成后调用 wp_die() 终止执行。

代码示例

function wp_ajax_wp_link_ajax() {
    check_ajax_referer( 'internal-linking', '_ajax_linking_nonce' );

    $args = array();

    if ( isset( $_POST['search'] ) ) {
        $args['s'] = wp_unslash( $_POST['search'] );
    }

    if ( isset( $_POST['term'] ) ) {
        $args['s'] = wp_unslash( $_POST['term'] );
    }

    $args['pagenum'] = ! empty( $_POST['page'] ) ? absint( $_POST['page'] ) : 1;

    if ( ! class_exists( '_WP_Editors', false ) ) {
        require ABSPATH . WPINC . '/class-wp-editor.php';
    }

    $results = _WP_Editors::wp_link_query( $args );

    if ( ! isset( $results ) ) {
        wp_die( 0 );
    }

    echo wp_json_encode( $results );
    echo "n";

    wp_die();
}

注意事项

  • 函数依赖于 _WP_Editors 类,如果未加载,会自动包含 class-wp-editor.php 文件。
  • 使用 wp_unslash() 处理输入参数,确保数据安全,避免转义问题。
  • 如果查询结果为空或未设置,会调用 wp_die(0) 终止执行,返回空响应。
  • 此函数自 WordPress 3.1.0 版本引入,是内部链接功能的核心部分。

📄 原文内容

Handles internal linking via AJAX.

Source

function wp_ajax_wp_link_ajax() {
	check_ajax_referer( 'internal-linking', '_ajax_linking_nonce' );

	$args = array();

	if ( isset( $_POST['search'] ) ) {
		$args['s'] = wp_unslash( $_POST['search'] );
	}

	if ( isset( $_POST['term'] ) ) {
		$args['s'] = wp_unslash( $_POST['term'] );
	}

	$args['pagenum'] = ! empty( $_POST['page'] ) ? absint( $_POST['page'] ) : 1;

	if ( ! class_exists( '_WP_Editors', false ) ) {
		require ABSPATH . WPINC . '/class-wp-editor.php';
	}

	$results = _WP_Editors::wp_link_query( $args );

	if ( ! isset( $results ) ) {
		wp_die( 0 );
	}

	echo wp_json_encode( $results );
	echo "n";

	wp_die();
}

Changelog

Version Description
3.1.0 Introduced.