WordPress の障害通知ページのスタイルを設定する方法はありますか? ページの例を示す以下のスクリーンショットを見てください。このページは、さまざまな時期にさまざまな理由で作成されています。ページを生成するには、ブラウザーで 2 つのタブを開き、各タブで同じ WordPress サイトにログインします。
1: 開いている最初のタブからサイトからログアウトします。
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
}
ファイルに移動/wp-includes/functions.php
して、呼び出された関数を探します
wp_nonce_ays
エラーページを出力する関数です。これは、 のアクションによって呼び出されるコア関数ですcheck_admin_referer
。そのアクションにフックしようとすることができます。唯一の問題は、それが呼び出されdie
た後であるということです。そのため、トリガーする前に終了するwp_nonce_ays
ため、使用しても効果がありません。add_action
ただし、幸いなことに、check_admin_referer
はプラグ可能な関数であるため、関数を作成してオーバーライドすることができます。私たちの関数はcheck_admin_referer
、スタイルを設定するために追加のコード行が 1 行追加されていることを除いて、 の正確なコピーになります。関数を保存します。私はそれを 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;
}
}
?>
<style>
doctype宣言の上に情報を挿入する必要があるため、これは無効なHTMLになりますが、コアwp_nonce_ays
関数を明示的に編集しない限り、これは避けられません