AURA 株式会社アウラ

RECRUIT急募!採用エントリー
WordPressでホームページを作るなら知っておきたい管理画面のカスタマイズ

スタッフブログ

Staff Blog
  1. ホームページ制作はアウラ:ホーム
  2. スタッフブログ
  3. WordPressでホームページを作るなら知っておきたい管理画面のカスタマイズ

WordPressでホームページを作るなら知っておきたい管理画面のカスタマイズ

WordPressでホームページを作るなら知っておきたい管理画面のカスタマイズ

WebコンテンツをHTMLやCSSなどの知識がない人でも更新が行えるように、多くのホームページにはCMS(コンテンツ管理システム)が導入されています。

その中でも世界中で好まれて使われているCMSがWordPressです。
WordPressは「テーマ」や「プラグイン」を使うことで自分好みのホームページにカスタマイズすることができます。

私たちホームページ制作会社もWordPressを利用して、お客様がホームページ内のコンテンツ(ブログや事業内容など)を更新できるようにしています。
テーマやプラグインはネット上で配布されているものを利用することもありますが、基本はオリジナルのテーマを作成し、お客様それぞれの要望にあった形にして納品します。

そして、WordPressでテーマを作る時、ユーザーに表示されるページだけでなく、管理画面のカスタマイズも行っています。
管理画面のカスタマイズでは以下の2つに気をつけなければいけません。

  1. ユーザビリティ(更新のしやすさ)
  2. セキュリティ(不正アクセス・個人情報の流出などを防ぐ)

1のユーザビリティについては、有料のテーマなどを使用するとある程度汎用性のある形で投稿機能などを組み込んでくれていますが、オリジナルのテーマを作る時は自分で実装する必要があります。

また、2のセキュリティについては、無料のプラグインも多くあるので、インストールしておくと良いでしょう。
WordPressは有名であるがゆえ、不正アクセスや攻撃の対象になりやすいです。何も対策していない状態で公開して、万が一管理画面などに不正アクセスされてしまうとホームページに障害が発生されてしまったり、個人情報流出などの事態にもなりかねないので、ホームページの公開前にはしっかりと対策しておきましょう。

1. UIのカスタマイズ(ユーザービリティ)

過不足のない画面を作ろう

メニューは過不足なく表示する

WordPressはインストールするとデフォルトでいくつかのメニューが表示されますが、毎回すべてのメニューが必要になる訳ではありません。

ホームページのブログ記事ページにコメント機能を表示していないのであれば「コメント」メニューは必要ないでしょう。
また、固定ページのみ必要でブログ機能は必要ないということであれば「投稿」メニューも表示されるべきではありません。

不必要なメニューはアクションフックを使って無効化しましょう。すべての権限のユーザーでメニューが非表示になります。

add_action('admin_menu', 'remove_menus');

function remove_menus () {
  global $menu;
  
  # 必要ないメニューをアンコメントして無効化
  #unset($menu[2]);  // ダッシュボード
  #unset($menu[5]);  // 投稿
  #unset($menu[10]); // メディア
  #unset($menu[20]); // ページ
  #unset($menu[25]); // コメント
  #unset($menu[60]); // テーマ
  #unset($menu[65]); // プラグイン
  #unset($menu[70]); // プロフィール
  #unset($menu[75]); // ツール
  #unset($menu[80]); // 設定
}

 

権限を活用して利用できる機能を制限する

WordPressはユーザーの役割に合わせてデフォルトでいくつかの権限を用意してくれています。
下記のリストでは下に行くほど機能の制限がなくなります。

  • 購読者 … ホームページのコンテンツを閲覧できる。ホームページの利用者。
  • 寄稿者 … ホームページのコンテンツを執筆できる。公開権限は持たないので、投稿者以上の権限を持つユーザーにレビューしてもらう必要があります。
  • 投稿者 … 寄稿者の権限に加え、記事の公開権限を持ちます。
  • 編集者 … 投稿者の権限に加え、カテゴリやタクソノミーの編集ができるほか、投稿済の記事の編集も行えます。投稿に関する機能はほぼすべて持っています。
  • 管理者 … 編集者の権限に加え、WordPressの設定やユーザーの作成など、すべての権限を持ちます。

基本的にホームページの制作者が管理者権限を持ち、運用者は編集者や投稿者に設定すると良いでしょう。
また会員制などコンテンツの閲覧に制限をかけるならホームページのユーザーは購読者になってもらうと良いでしょう。

必要のない機能やメニューはアクションフックや権限を使って非表示にしましょう。

 

適切な名前をつける

サイドメニューの「投稿」の名前は適切?

もし、ホームページでブログコンテンツのページ名が「お知らせ」だった場合、管理画面上の「投稿」の名前も「お知らせ」に変えるとより親切です。

企業のホームページ担当者はWordPressを知らない人も多いでしょう。管理画面で「投稿」というメニューが何を指しているのかわからず、お知らせの更新ができないかもしれません。
ホームページ担当者がお知らせを更新するために管理画面に入ったら、まず「お知らせ」というメニューを探す人が多いのではないでしょうか。WordPressの「投稿」という概念を知らないと「お知らせ」=「投稿」と気づくのに時間がかかるでしょう。

これを解決する簡単な方法は「投稿」のメニュー名を「お知らせ」に変えてあげることです。そうするだけでホームページ担当者はすぐに自分の目的のメニューを探し出せるでしょう。

アクションフックを使ってメニュー名を変更できます。メニュー名はサイド以外にも多くの箇所で表示されるので、それぞれ変更します。

function change_post_menu_label() {
 global $menu;
 global $submenu;
 $menu[5][0] = 'お知らせ';
 $submenu['edit.php'][5][0] = 'お知らせ一覧';
 $submenu['edit.php'][10][0] = '新しいお知らせ';
}
function change_post_object_label() {
 global $wp_post_types;
 $labels = &$wp_post_types['post']->labels;
 $labels->name = 'お知らせ';
 $labels->singular_name = 'お知らせ';
 $labels->add_new = _x('追加', 'お知らせ');
 $labels->add_new_item = 'お知らせの新規追加';
 $labels->edit_item = 'お知らせの編集';
 $labels->new_item = '新規お知らせ';
 $labels->view_item = 'お知らせを表示';
 $labels->search_items = 'お知らせを検索';
 $labels->not_found = '記事が見つかりませんでした';
 $labels->not_found_in_trash = 'ゴミ箱に記事は見つかりませんでした';
}
add_action( 'init', 'change_post_object_label' );
add_action( 'admin_menu', 'change_post_menu_label' );

投稿や固定ページにカスタムフィールドを追加する場合なども、ホームページ上と管理画面上で名前が違うと更新者が混乱します。
これはホームページの作ったばかりの時期には起こらないですが、更新を繰り返していく中で複雑になりがちです。

原則、メニュー名はホームページ上のコンテンツ名と同じにしておくと良いでしょう。

2. セキュリティ対策

管理画面に不正アクセスされないようにする

ログインURLを変更しよう

WordPressのログインURLはデフォルトで「WPのインストールディレクトリ/wp-login.php」です。
ログイン情報を知っていなくてもログインページを知られているとそこから総当たり攻撃をされてしまいます。

アクションフックを使ってログインURLを変更しておきましょう。

define('LOGIN_PAGE', '変更するログインページ名.php');
add_action('login_init', 'admin_login_init');
function admin_login_init() {
  // 変更後のログインページが存在しなければ何もしない
  if (!file_exists(ABSPATH.'/'.LOGIN_PAGE)) return false;

  if( !defined('LOGIN_KEY') || password_verify( 'login', LOGIN_KEY) === false ) {
    status_header(404);
    nocache_headers();
    include( get_query_template( '404' ) );
    exit;
  }
}

add_filter( 'site_url', 'admin_login_site_url', 10, 4);
function admin_login_site_url( $url, $path, $orig_scheme, $blog_id) {
  // 変更後のログインページが存在しなければ何もしない
  if (!file_exists(ABSPATH.'/'.LOGIN_PAGE)) return $url;

  if( ($path == 'wp-login.php' || preg_match( '/wp-login\.php\?action=\w+/', $path) ) && (is_user_logged_in() || strpos( $_SERVER['REQUEST_URI'], LOGIN_PAGE) !== false) ) {
      $url = str_replace( 'wp-login.php', LOGIN_PAGE, $url);
  }
  return $url;
}

add_filter( 'wp_redirect', 'admin_login_wp_redirect', 10, 2);
function admin_login_wp_redirect( $location, $status) {
  // 変更後のログインページが存在しなければ何もしない
  if (!file_exists(ABSPATH.'/'.LOGIN_PAGE)) return $location;

  if( is_user_logged_in() && strpos( $_SERVER['REQUEST_URI'], LOGIN_PAGE) !== false ) {
      $location = str_replace( 'wp-login.php', LOGIN_PAGE, $location);
  }
  return $location;
}

上記のソースコードから、1行目の「変更するログインページ名.php」を任意のファイル名に変更し、テーマのfunction.phpに追記します。
次にwp-login.phpのあるディレクトリに「変更するログインページ名.php」のファイルを新規作成し、以下のコードを書きます。

define('LOGIN_KEY', password_hash( 'login', PASSWORD_BCRYPT, array('cost'=>10)));
require_once('./wp-login.php');

これでWordPressのログインURLが「WPのインストールディレクトリ/変更するログインページ名.php」に変更することができました。

さらに管理画面のセキュリティを強化するなら管理画面のURL(wp-admin/)も変更するとなお良いでしょう。

定期バックアップをとっておく

万が一サーバーに障害が起こった場合や、誤ってデータを削除してしまった場合、すぐに元の状態に普及できるように、FTPやDBの定期的なバックアップを取っておくとよいでしょう。

バックアップには「WPBackUp」のプラグインが便利なのでインストールしましょう。

BackWPup – WordPress バックアップ & 復元プラグイン

 

WordPressの初版を調べたところ2003年5月27日だそうです。
今から10年以上経過しており、現在でも有志の方たちなどの手によって日々バージョンアップしています。

ホームページ制作をしたことのある人なら必ず一度は利用したことはあるのではないでしょうか。

そんなメジャーなWordPress、オリジナルテーマを作る上で便利なプラグインやアクションフックが多く用意されていますが、使い方を知らないと活かせないまま、使いづらく脆弱なセキュリティのホームページになってしまいます。

WordPressのホームページの運用をしている方は一度自身のホームページを見直してみてはいかがでしょうか。

お電話でのお問い合わせはこちら:06-6292-8577。受付時間は平日9:30~18:30 インターネットからは24時間受付中!お問い合わせフォームはこちら
RECRUIT急募!採用エントリー