1ヶ月ぶりです。こんにちは。
ネクストページでは定期的に社内セミナーを開催しています。
今回は「コーポレート向けWordPressのベストプラクティスを考える」というテーマでセミナーした内容をブログにします。
目次
最初にする5つの設定
1. デフォルトの名前を変更する
・テーブル接頭辞「wp_」を使用しない。
WordPress(以下 WP)を使っている人なら、テーブル接頭辞がデフォルト設定で「wp_」なっていることを知っています。
SQL インジェクション対策のため変更しておきましょう。
・設置ディレクトリやホームディレクトリに「wp」を使用しない。
WPの設置ディレクトリを「wp」にしているサイトが多くあり特定されやすいですので、特定されにくいディレクトリに設定しましょう。
【非推奨】 /wp/wp-login.php /wp-login.php
【推奨】 /np_cms/wp-login.php /cms_nextpage/wp-login.php
2. adminを作らない
ログイン画面が特定された際にadminというユーザ名を前提に総当りでパスワードチェックされる可能性があります。
その他「root」や「webmaster」といった一般的なユーザ名は避けましょう。
※ 1、2の設定は機械的な総当り攻撃を回避するために有効です。
これで全ては回避できませんが、設定しておいて損はありません。
3. 自動アップデートを無効化
※ wp-config.phpに追記
define( ‘AUTOMATIC_UPDATER_DISABLED’, true );
なぜ無効化するのか
- プラグインに不具合が生じる可能性があります。
- 独自実装のためのオリジナルテーマに不具合が生じる可能性があります。
アップデートによる関数の廃止やコア部分の仕様変更で、予期せぬ不具合が生じる可能性があります。
必ずテスト環境で検証した後で本番環境のアップデート実施することを心がけましょう。
4. リビジョン件数制限
デフォルトでは無限に増えるリビジョン…
- 自動保存機能の併用でデータベースに不要レコードがガンガン蓄積されていきます。
- 結果表示速度が低下します。
※ wp-config.phpに追記
define( ‘WP_POST_REVISIONS’, 3);
3 ~ 5件程度を推奨
5. パーマリンク設定
カテゴリ、タクソノミはスラッシュ終わりで統一
※
functions.phpに追記
function ex_trailingslashit($string, $url_type) { if ($url_type != ‘single’) $string = trailingslashit($string); return $string; } add_filter(‘user_trailingslashit’, ‘ex_trailingslashit’, 10, 2);
詳細ページ、固定ページは.htmlで統一
例)/%category%/%postname%.html
固定ページの.html化はプラグインで実現
.html on PAGES
管理画面カスタマイズ
1. メニューバー
管理者と投稿者で表示メニューを変更しましょう。
サイト更新するオペレータに管理者ユーザで作業させないようにします。
メニューバー編集におすすめなプラグイン
User Role Editor
任意の権限グループを設定
Admin Menu Editor
メニューバーを柔軟にカスタマイズ
2. カスタムフィールドを使おう
- 各企業専用の更新画面を実現できます。
- 本文、カテゴリーを使わずに構築できます。
コーポレートサイトでは必要な項目のみを表示する方が使いやすい!!
3. 投稿を使わない
投稿を使った場合
例)ネクストページ
- カテゴリ階層が深くなります。
- カテゴリ階層が深くなればなるほど縦の関連性はなくなります。
- ※1「ニュース」は年別アーカイブ表示を実装しなければいけません。
- ※2「サービス」は親子関係を持った詳細ページを実現しなければいけません。
上記※1、2を実現しつつカテゴリでのページ表現も実装するとなるとロジックが大変煩雑になります。
カスタム投稿を使った場合
例)ネクストページ
- カスタム投稿タイプを使用して第1カテゴリだった項目をそれぞれの投稿とて扱うことにより、直感的にどこを更新するかわかるようになります。
- 投稿タイプ毎にテンプレートを分けれるのでロジックが整理されます。
カスタム投稿タイプを設定するプラグイン
Custom Post Type UI
※このプラグインを使用しなくてもfunctions.phpで定義すればカスタム投稿タイプは実装できます。
どちらが最適かよく検討してください。
必須プラグインと導入について
必須プラグイン
Admin Menu Editor
メニューバーを柔軟にカスタマイズ
Advanced Custom Fields
– Flexible Content Field(有償)
– Repeater Field(有償)
– Options Page(有償)
繰り返し、オプションページ、セット選択を可能にする。
Custom Post Type Permalinks
カスタム投稿を設定した際のパーマリンクを設定できる。
導入について
まずは!
- 【ディレクター・デザイナー】→どんどんプラグインを試して良さそうなプラグインを提案する。
- 【エンジニア】→それに対して本当にプラグインじゃないと実現できないのか確認する。
※その際工数も考慮する。
次に!
- 【全員】→使用するプラグインに脆弱性はないか、評判、アップデートの頻度等を確認する。
- 【エンジニア】→与件につかう他プラグインとの兼合いによる動作不良の確認する。
最後に!
- 【全員】→実際使用してみて更新者の更新性・閲覧者のためになるかを上げるものかどうか確認する。
- 【エンジニア】→そのプラグインを入れたことによる処理・表示速度の低下がないか確認する。
まとめ
以上WPでコーポレートサイトを作る際のベストプラクティスを考えてみました。
少しでも参考になる箇所があれば幸いです。
それでは次回のブログでお会いしましょう。
ありがとうございました。