有没有办法设置WordPress故障通知页面的样式?请查看下面的屏幕截图,其中显示了该页面的示例。此页面由于各种原因在不同时间生成。要生成页面,请在浏览器中打开2个选项卡,然后在每个选项卡上登录到同一个WordPress站点。
1:通过您打开的第一个标签退出网站。
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是不可避免的