
Contents
この記事でやること
プラグインは使いません。
functions.php に追記するだけ で、どこまで WordPress を制御できるか試します。
やることはこの3つです。
- 管理画面メニューを削除する
- 自動保存(autosave)を無効化する
- ログイン画面をカスタマイズする
※ すべて テーマ側の functions.php に記述します。
管理画面メニューを削除する
目的
- クライアントや非エンジニアに余計な項目を触らせない
- 管理画面をシンプルにする
実装コード
/**
* 管理画面メニューを非表示にする
*/
function remove_admin_menus() {
remove_menu_page('edit.php'); // 投稿
remove_menu_page('edit-comments.php'); // コメント
remove_menu_page('tools.php'); // ツール
remove_menu_page('options-general.php'); // 設定
}
add_action('admin_menu', 'remove_admin_menus');
ポイント
- 権限管理ではなく見た目制御
- 本気の制限は「権限」でやる
- これは「事故防止」用途
自動保存(autosave)を無効化する
目的
- 編集中に勝手に保存されるのがストレス
- Gutenberg使用時の意図しない競合回避
実装コード
/**
* 自動保存を無効化
*/
function disable_autosave() {
wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'disable_autosave');
補足
- 下書き保存は手動で可能
- クラシック/ブロック両方に効く
- 自己責任だが、個人ブログなら快適
ログイン画面をカスタマイズする
ロゴを差し替える
/**
* ログイン画面のロゴ変更
*/
function custom_login_logo() {
?>
<style>
body.login #login h1 a {
background-image: url('<?php echo get_template_directory_uri(); ?>/images/login-logo.png');
background-size: contain;
width: 100%;
}
</style>
<?php
}
add_action('login_enqueue_scripts', 'custom_login_logo');
ロゴリンク先を変更する
/**
* ログインロゴのリンク先変更
*/
function custom_login_logo_url() {
return home_url();
}
add_filter('login_headerurl', 'custom_login_logo_url');
ロゴのtitle属性を変更する
/**
* ログインロゴのtitle変更
*/
function custom_login_logo_title() {
return get_bloginfo('name');
}
add_filter('login_headertext', 'custom_login_logo_title');
functions.php魔改造で感じたこと
- 意外とできる
- プラグイン入れる前に、まず functions.php を疑うべき
- 小規模サイト・個人ブログなら十分すぎる
ただし、
- 影響範囲が広い
- テーマ変更で消える
- 管理が属人化しやすい
という弱点もあります。
関連記事
自分だけの筋トレアプリを作ってみよう! ~インターバルタイマー機能追加編~
自分だけの筋トレアプリを作ってみよう! 〜アプリ開発の楽しさと挑戦〜
結論:functions.phpは「軽いナイフ」
- 小さく切るには最強
- 振り回すと危険
- 「ちょっと変えたい」には最適
プラグインを探す前に、
まず functions.php で 5 分考える。
これくらいの距離感が一番ちょうどいいです。
本日はここまで。では、また次の記事でお会いしましょう。



![[ブログを続けるほど作業が増えていく感覚]で消耗していた自分が「[やらないことを先に決める]」きっかけになった1つのこと](https://syuji-engineer.com/wp-content/uploads/2026/01/[ブログを続けるほど作業が-増えていく感覚]で-消耗していた自分が-「[やらないことを先に決める]」-きっかけになった1つのこと-300x169.png)