XML-RPCを無効化の方法
WordPress には外部からの接続を可能にする XML-RPC 機能があります。
言い換えるとXML-RPC は「リモートからWordPressにアクセスするための通信プロトコル(仕組み)」です。
しかし現在ではセキュリティリスクやスパムの原因になるケースが多いため、外部からWordPressに投稿する必要がある(モバイルアプリを使って記事を書くなど)の場合を除き、不要であれば無効化することをおすすめします。
実装のポイント
以下のような方法で XML-RPC を無効化できます:
functions.php
にコードを追加- テーマに応じて CSS で通知やデザインを整える
- プラグインで制御する方法
functions.php にコードを追加
/**
* XML-RPC を無効化
*/
add_filter( 'xmlrpc_enabled', '__return_false' );
/**
* pingback を無効化
*/
add_filter( 'wp_headers', function( $headers ) {
unset( $headers['X-Pingback'] );
return $headers;
});
/**
* 管理バーに「XML-RPC 無効化済み」を表示
*/
add_action( 'admin_bar_menu', function( $wp_admin_bar ) {
$args = array(
'id' => 'xmlrpc-status',
'title' => 'XML-RPC 無効化済み',
'href' => false,
'meta' => array(
'class' => 'xmlrpc-status-node'
)
);
$wp_admin_bar->add_node( $args );
}, 100 );
/**
* 管理バー用CSSを読み込み
*/
add_action( 'admin_enqueue_scripts', function() {
wp_enqueue_style(
'xmlrpc-status-style',
get_stylesheet_directory_uri() . '/css/xmlrpc-status.css',
array(),
'1.0'
);
});
補足:
上記コードを
上記コードを
functions.php
の末尾に追加してください。
汎用CSS
管理画面などで「XML-RPC 無効化済み」といった通知を表示したい場合の汎用CSS例です。
/* 管理バーに追加した XML-RPC 無効化表示用 */
#wpadminbar #wp-admin-bar-xmlrpc-status > .ab-item {
background: #27ae60; /* 緑背景 */
color: #fff !important;
font-weight: bold;
}
#wpadminbar #wp-admin-bar-xmlrpc-status .ab-icon:before {
color: #fff !important;
}
代用プラグイン
コード編集が不安な場合は以下のプラグインでも XML-RPC を簡単に無効化できます:
- Disable XML-RPC
- All In One WP Security(セキュリティ対策の一部機能として無効化可能)
まとめ
XML-RPC は現在ほとんど使われておらず、セキュリティ上のリスクもあるため、無効化するのが推奨です。functions.php へコードを追加する方法がシンプルで軽量ですが、不安な場合はプラグインを利用しましょう。