0

有没有办法可以设置 WordPress 失败通知页面的样式?看看下面的屏幕截图,它显示了一个页面示例。该页面是在不同时间和出于各种原因生成的。要生成页面,请在浏览器中打开 2 个选项卡,然后在每个选项卡上登录到同一个 WordPress 站点。

1:通过您打开的第一个选项卡退出站点。

2:通过第二个选项卡注销。

您将看到失败页面。

WordPress失败通知页面截图

4

2 回答 2

2

我采用的方法是设置一个自定义 die 处理程序,它使您可以选择设置所有“die”消息的样式。

// custom die handler
function get_custom_die_handler() {
    return 'custom_die_handler';
}

// hook the function
add_filter('wp_die_handler', 'get_custom_die_handler' );

// build a custom die handler
function custom_die_handler( $message, $title = '', $args = array() ) {
    // whatever you want the die handler to do
}
于 2013-10-16T14:57:41.977 回答
0

导航到文件/wp-includes/functions.php查找名为的函数

wp_nonce_ays

那就是输出错误页面的函数。那是一个核心函数,由 的动作调用check_admin_referer。您可以尝试参与该操作;唯一的问题是它被调用diewp_nonce_ays,所以 usingadd_action没有任何效果,因为它在触发之前就死了。但是,幸运的是,check_admin_referer它是一个可插入的函数,因此您可以创建一个函数来覆盖它。我们的函数将是一个精确的副本,check_admin_referer只是添加了一行额外的代码来设置它的样式。保存该函数,我将其命名为 styleFailPage.php,并将其放在您的/wp-content/plugins/文件夹中。

<?php /*
* Plugin Name:Failure Styler
* Description:Adds a style element right before the failure notice is called
*/
if ( ! function_exists( 'wp_logout' ) ) {
function check_admin_referer($action = -1, $query_arg = '_wpnonce') {
        if ( -1 == $action )
                _doing_it_wrong( __FUNCTION__, __( 'You should specify a nonce action to be verified by using the first parameter.' ), '3.2' );

        $adminurl = strtolower(admin_url());
        $referer = strtolower(wp_get_referer());
        $result = isset($_REQUEST[$query_arg]) ? wp_verify_nonce($_REQUEST[$query_arg], $action) : false;
        if ( !$result && !(-1 == $action && strpos($referer, $adminurl) === 0) ) {
//this is the line I added:
echo "<style>body {background:red !important;}</style>";
                wp_nonce_ays($action);
                die();
        }
        do_action('check_admin_referer', $action, $result);
        return $result;
}

}
?>

这将使 HTML 无效,因为您最终必须<style>在 doctype 声明上方插入信息,但是 AFAIK 如果不显式编辑核心wp_nonce_ays功能,这是不可避免的

于 2013-10-16T00:42:48.693 回答