非特权上下文中Heartbeat API的Ajax处理程序。

原型

wp_ajax_nopriv_heartbeat()

描述

用户未登录时运行。

源文件

路径:wp-admin/includes/ajax-actions.php

<?php
...
function wp_ajax_nopriv_heartbeat() {
	$response = array();
	// screen_id is the same as $current_screen->id and the JS global 'pagenow'.
	if ( ! empty($_POST['screen_id']) )
		$screen_id = sanitize_key($_POST['screen_id']);
	else
		$screen_id = 'front';
	if ( ! empty($_POST['data']) ) {
		$data = wp_unslash( (array) $_POST['data'] );
		/**
		 * Filters Heartbeat Ajax response in no-privilege environments.
		 *
		 * @since 3.6.0
		 *
		 * @param array|object $response  The no-priv Heartbeat response object or array.
		 * @param array        $data      An array of data passed via $_POST.
		 * @param string       $screen_id The screen id.
		 */
		$response = apply_filters( 'heartbeat_nopriv_received', $response, $data, $screen_id );
	}
	/**
	 * Filters Heartbeat Ajax response when no data is passed.
	 *
	 * @since 3.6.0
	 *
	 * @param array|object $response  The Heartbeat response object or array.
	 * @param string       $screen_id The screen id.
	 */
	$response = apply_filters( 'heartbeat_nopriv_send', $response, $screen_id );
	/**
	 * Fires when Heartbeat ticks in no-privilege environments.
	 *
	 * Allows the transport to be easily replaced with long-polling.
	 *
	 * @since 3.6.0
	 *
	 * @param array|object $response  The no-priv Heartbeat response.
	 * @param string       $screen_id The screen id.
	 */
	do_action( 'heartbeat_nopriv_tick', $response, $screen_id );
	// Send the current time according to the server.
	$response['server_time'] = time();
	wp_send_json($response);
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/wp_ajax_nopriv_heartbeat/