当前浏览:首页 / WordPress函数 / wp_die()

wp_die( string|WP_Error $message = '', string|int $title = '', string|array|int $args = array() )

终止WordPress执行并显示带有错误消息的HTML页面

schedule 计划任务


描述

此函数是die()PHP函数的补充。不同之处在于,HTML将显示给用户。建议仅在执行不再继续时使用此函数。不建议经常调用此函数,并尝试以静默或更优雅的方式处理尽可能多的错误。

简而言之,所需的HTTP响应代码可以作为整数传递给$title参数(默认标题适用)或$args参数。


参数

$message

(string|WP_Error)(可选) 错误消息。如果这是WP_Error对象,而不是Ajax或XML-RPC请求,则使用错误消息。

默认值: ''

$title

(string|int)(可选) 错误标题。如果$messageWP_Error对象,则可以使用带有'title'键的错误数据来指定标题。如果$title是整数,则将其视为响应代码。

默认值: ''

$args

(string|array|int)(可选) 控制行为的参数。如果$args是整数,则将其视为响应代码。

  • 'response'
    (int) HTTP响应代码。Ajax请求默认为200,否则为500。
  • 'link_url'
    (string) 包含指向的链接的URL。仅与$link_text结合使用。默认为空字符串。
  • 'link_text'
    (string) 链接要包含的label标签。仅与$link_url结合使用。默认为空字符串。
  • 'back_link'
    (bool) 是否包含要返回的链接。默认值为false。
  • 'text_direction'
    (string) 文本方向。这仅在WordPress仍在加载且站点的区域设置尚未设置时在内部有用。接受'rtl'和'ltr'。默认值为is_rtl()
  • 'charset'
    (string) HTML输出的字符集。默认值为'utf-8'。
  • 'code'
    (string) 要使用的错误代码。默认值为'wp_die',如果$message是WP_Error,则为主要错误代码。
  • 'exit'
    (bool) 完成后是否退出流程。默认为true。

默认值: array()


更多信息

您可以添加WP_Error对象,如果您这样做了,您可以添加:$data['title'],并将其自动作为模板页面的(默认/可覆盖)标题



源码

查看源码 官方文档


更新日志

版本描述
5.5.0在默认处理程序中,$text_direction参数的优先级高于get_language_attributes()
5.3.0添加了$charset参数。
5.1.0添加了$link_url$link_text$exit参数。
4.1.0$title$args参数已更改为可选地接受一个整数作为响应代码。
2.0.4开始引入

用户贡献的笔记

  • 贡献者:Codex

    测试以查看过滤器中$post变量中的内容:

    /**
     * Add new body class.
     *
     * Testing what is in the $post variable.
     *
     * @param array $classes Body classes.
     */
    function wpdocs_add_body_class( $classes ) {
    	/** @global WP_Post $post */
    	global $post;
    
    	wp_die( '<pre>' . var_export( $post, true ) . '</pre>' );
    }
    add_filter( 'body_class', 'wpdocs_add_body_class' );
    
  • 贡献者:capbussat

    您可以在函数末尾使用wp_die()关闭AJAX请求。例如,您会收到HTML代码,您可以通过JS使用它。但是如果需要向AJAX请求返回正确的字符串值,可以考虑使用wp_send_json()。(我假设您还可以返回数组或对象)。Codex表明wp_send_json()使用wp_die()

    wp_die( 'string' ) // received by JS as '\nstring' 
    wp_send_json( 'string' ) // received by JS as 'string'