これまでWordPressを使いコーポレートサイトやイベントサイト等、ビジネスで利用するサイトを数多く制作してきました。そこでWordPressでビジネスサイトを構築する際に便利なプラグインやおすすめの初期設定を紹介します。
WordPressのインストールと初期設定
まずは基本中の基本ですが、WordPressはサーバーのルートディレクトリにインストールしてはいけません。WordPressへハッキングを仕掛けてくる際、その多くはhttp://********.com/wp-login.phpのようにルートディレクトリのログイン画面目掛けて仕掛けてくるのでサブディレクトリにインストールすることである程度回避することができます。
とはいえサブディレクトリにインストールしたとしても、http://********.com/wp-login.phpにアクセスするとhttp://********.com/sub/wp-login.phpと勝手にリダイレクトしてくれる仕様のため後述のプラグインが必要になります。
WordPress管理外のコンテンツがある場合もサブディレクトリにインストールしておけばルートディレクトリにファイルが散乱するのを防げるメリットもあります。
サブディレクトリにインストールしますが、サイトURLはルートディレクトリになります。下記を参考に設置します。
【参考】WordPress を専用ディレクトリに配置する – WordPress Codex 日本語版
初期設定は使うテーマによるので特にありませんが、wp_headで出力される不要なメタタグ等を削除する記述はいつもしています。
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'rest_output_link_wp_head');
remove_action('wp_head', 'wp_resource_hints',2);
remove_action( 'wp_head', 'wp_shortlink_wp_head' );
add_filter( 'emoji_svg_url', '__return_false' );
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
上記をfunction.phpに記述します。
function custom_login_logo() {
echo '<style type="text/css">h1 a { background: url('ロゴのURL') no-repeat center center !important; width:000px !important; height:000px !important; }</style>';
}
add_action('login_head', 'custom_login_logo');
特にやらなくてもいいけどログイン画面のロゴをクライアントのロゴに変えたり。
WordPressのプラグイン
SiteGuard WP Plugin
セキュリティ強化用プラグイン。JP-Secureという日本の会社が開発したプラグインなので使いやすく無料なのが不思議なほど機能も豊富です。
下記の機能から必要なものだけを有効化して運用します。
管理ページアクセス制限
ログインしていない接続元から管理ディレクトリ(/wp-admin/)を守ります。
ログインページ変更
ログインページ名を変更します。
画像認証
ログインページ、コメント投稿に画像認証を追加します。
ログイン詳細エラーメッセージの無効化
ログインエラー時の詳細なエラーメッセージに変えて、単一のメッセージを返します。
ログインロック
ログイン失敗を繰り返す接続元を一定期間ロックします。
ログインアラート
ログインがあったことを、メールで通知します。
フェールワンス
正しい入力を行っても、ログインを一回失敗します。
XMLRPC防御
XMLRPCの悪用を防ぎます。
更新通知
WordPress、プラグイン、テーマの更新が必要になった場合に、管理者にメールで通知します。
WAFチューニングサポート
WAF (SiteGuard Lite)の除外ルールを作成します。
特にログインページ変更はwp-login.phpをnot foundにしてくれる他、前述したwp-login.phpのリダイレクトを切ってくれるので外部からの攻撃には効果的です。
画像認証ではログイン画面で毎回ランダムなひらがなを入力しないとログインできないのでちょっと面倒にはなりますが海外からの不正アクセスをある程度防げます。
最近では多くのレンタルサーバーが海外IPアドレスからの管理画面へのアクセスを遮断する機能があるので無くても問題無さそうですがセキュリティは高いに越したことはないのでいつもつけています。
Public Post Preview
ビジネスサイトを運用する際にかなりお世話になっているプラグイン。
通常公開前の投稿や固定ページをプレビューするには、WordPressにログインしたユーザーでなければできません。しかし外部のクライアントや担当者に事前に確認してもらうために毎回ログインしてもらったり専用のユーザーを作ったりするのは互いに面倒、ということでログインしていなくてもプレビューが見られる一時URLを発行できるプラグインです。
下書きの状態で「外部確認を許可する」にチェックを入れれば専用のURLが表示されるので、このURLを教えれば事前に確認してもらうことができます。
ただしこのURLはデフォルトでは2日間しか有効期限が無いため、期限を変えるにはfunction.phpに以下の記述を追加する必要があります。
add_filter( 'ppp_nonce_life', 'my_nonce_life' );
function my_nonce_life() {
return 60 * 60 * 24 * 30;
}
60 * 60 * 24 * 30の最後の数字が日数なので30日間ということになります。
Disable Comments
ビジネスサイトではブログとして運営しない限り基本的にコメントは不要です。
このプラグインを入れておけば全てのページでコメントを無効にすることができます。
Duplicate Post
その名の通り、投稿を複製するプラグイン。
ブログではあまり記事を複製するということはしないので使いませんが、イベントサイトだと毎年同じような内容の投稿をするときに去年の投稿を複製して書き換えたり、同じフォーマットで固定ページをいくつも作ったりということがけっこうあります。そんなときに便利なプラグインです。
「複製」か「新規下書き」の2種類あります。いまいち違いがわからないのですが。「複製」だと記事一覧ページから遷移せず複製された下書きが増える。
「新規下書き」だと複製しつつ編集画面へ遷移する、くらいの違いです。
Search & Replace
検索&置換プラグイン。例えば何かの名前が変わって全てのページでその名前を書き換えなければいけないといった場合に検索して一括で置換できます。
置換する際はミスを防ぐために「Dry Run」でテストできるので確認してから作業ができます。
頻繁に使うようなプラグインではないので通常は無効にしておくか、必要なとくだけインストールしてもいいと思います。
Advanced Custom Fields
カスタムフィールドを追加するプラグイン。
カスタム投稿タイプを追加する「Custom Post Type UI」とセットで使うことが多いです。
れがあれば大抵のサイトは作れるんじゃないかと思うくらいいろいろできます。
例えば地域の店舗等の情報を集めたポータルサイトとか、カテゴリ別に分類した商品紹介やショッピングサイトとかを作るときとかに使えます。
こんな感じでお店の情報を追加する投稿画面を作り、get_field()またはthe_field()関数を使ってテンプレートに出力したり、都道府県や市区町村を選択形式にして地域別の一覧を表示したり。ここまでくるとけっこうPHPの知識も必要になってきますがいろんなことができます。
BackWPup
バックアップ用プラグイン。
■データベースのバックアップ
■ファイルのバックアップ
■WordPress の XML エクスポート
■インストール済みプラグイン一覧
■データベーステーブルをチェック
以上のデータをバックアップできます。スケジュールを設定して自動バックアップも可能です。ファイルのバックアップはwp-content内のアップロードしたファイルなども全てバックアップするのでデータが重いため、頻繁にバックアップするのはデータベースのみ、月1などデータが増えてきたところでファイルもバックアップと使い分けています。
また、バックアップ先はサーバー内の他にメールで送信したり、FTPで外部のサーバーに送ったり、Dropbox等クラウドへも送ることができます。
他にはAll In One SEO PackやYoast SEO等のSEO強化プラグインも場合によって使ったりしています。Search Console用のサイトマップを出力したり、OGPやTwitter Card等のメタタグの出力ができるので便利です。
WordPressの危険性
WordPressは今では世界中のウェブサイトの3割で使われているくらい圧倒的なシェアを誇るCMSです。企業だけでなく自治体でも使われるサイトはかなり増えてきました。それだけにWordPressの脆弱性を狙って攻撃してくる数も圧倒的です。
バージョンアップでセキュリティは強化され、レンタルサーバーの多くが対策を施しているので今ではかなり安全になりましたが、数年前まではけっこう乗っ取られたり、スパムを仕込まれたりすることが多かったと思います。
過去にスパムを仕込まれた経験
まだWordPressのバージョンが2.8か2.9くらいのころ、もう10年くらい前のことですが、WordPressを使って制作したサイトで長くバージョンアップしていなかったことによりスパムを仕込まれたことがありました、おそらくデータベースに直接javascriptで広告サイトに転送されるタグを書き込まれました。幸いすぐに気づいて大事にはなりませんでしたが古いバージョンを放置することは非常に危険だと思い知りました。
最近のバージョンは自動アップデートされるのでセキュリティホールが見つかるとすぐにアップデートしてくれるのでこういうことは全く起きなくなりました。
WordPressは最新でも、プラグインが古く開発が止まっているため、プラグインのセキュリティホールを突いてくるケースもあるので、長い期間アップデートされていないプラグインもできれば避けたほうがいいと思います。
コメント