如何设置WordPress故障通知页面的样式?

时间:2013-10-15 23:23:56

标签: css wordpress

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

1:通过您打开的第一个标签退出网站。

2:通过第二个标签注销。

您将看到失败页面。

WordPress failure notice page screenshot

2 个答案:

答案 0 :(得分:2)

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

// 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
}

答案 1 :(得分:0)

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

的函数
wp_nonce_ays

这是输出错误页面的功能。这是一个核心功能,由check_admin_referer的动作调用。你可以试着勾起那个动作;唯一的问题是die被调用后wp_nonce_ays,所以使用add_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>信息,但是如果没有明确编辑核心wp_nonce_ays函数,AFAIK是不可避免的