【WordPressサイト制作・SWELL】サイト制作のポイント・まとめ(2)WordPressカスタマイズ、コンテンツの作成
事業用サイト制作「CREATE ACCORDウェブサイト&ブログサイト(PURPOSE/パーパス)」で参考にしたページなどをまとめました。
これを見ながらWebサイトが作れる…とまでは言いませんが、困ったときはここを見れば答えやヒントが見つかると思います。参考になりましたら幸いです。
今回は、WordPressカスタマイズ、コンテンツの作成についてです。使用テーマ「SWELL」でよく使うかもしれないカスタマイズについてもまとめていますよ!

プラグイン編
自分がインストールしたプラグインリストですが、参考になりましたら幸いです。
※表示用のサイトマップは自分で作成しているので表示用のサイトマップのプラグインは利用していません。
※プラグインの使用数を減らしたいが、テーマのカスタマイズも増えること、万が一テーマが変わることを考慮すると減らしにくいと感じている。
| プラグイン名(2022年9月6日現在) ※プラグイン名は変更になる場合あり | 用途・コメント |
|---|---|
| 404page – your smart custom 404 error page | 404エラーページ作成用のプラグイン |
| BackWPup | データベースバックアップ用プラグインとして使用 ※ジョブの登録はせず、ダッシュボードからSQLファイルを手動でダウンロードしている |
| Breadcrumb NavXT | パンくずリスト表示用のプラグイン |
| Broken Link Checker | リンク切れチェック用のプラグイン ※参考リンクをブログに貼ることが多いので、リンク切れがあったら修正しやすいように導入した |
| Contact Form 7 | お問い合わせフォーム |
| Download Manager | ファイルのダウンロード用プラグイン ※ファイルのダウンロードにパスワードを設定したくて使用しました。 |
| DynaMo | ページ表示高速化のお守り ※WordPressは英語がデフォルト言語なので日本語サイトだと少し速くなるとのことなので導入した |
| EWWW Image Optimizer | 主にWebP変換のみで使用しているプラグイン ※リサイズや圧縮等はしていません ※アップロード時に多少圧縮されるみたいですが、基本的に圧縮してからアップロードしているのでほぼ圧縮されません |
| Highlighting Code Block | ソース表示用のプラグイン ※作者はSWELLの作者と同じ ※ソースコード表示は想定していなかったけど、技術的な話をするときに不可避だと感じたので追加しました |
| Markup (JSON-LD) structured in schema.org | 構造化データ対応プラグイン ※最終更新日が1年前なので、他に使いやすいプラグインがあったら乗り換えたい |
| Microsoft Clarityとの連携用のプラグイン →最終的にタグマネージャーで管理するようになったのでプラグインを削除した | |
| Query Monitor | デバッグプラグイン ※速度が異常に遅いときやテンプレートファイルを変更するときに便利 |
| Search Regex | 文字列検索・変換用のプラグイン ※ミスをしたときに広範囲に修正箇所が及んでいたので使用。便利なプラグインでもあるので、そのまま残している |
| SEO SIMPLE PACK | SEOプラグイン ※SWELLと同じ作者が作成しているので、SWELLとの相性は申し分なし |
| Simple Custom CSS and JS | JSとCSS追加管理用として使用しているプラグイン ※子テーマを作るほどじゃないカスタマイズであれば、このプラグインで事足りる |
| Site Kit by Google | Googleツール(Googleアナリティクス)との連携用 ※SEO SIMPLE PACKでも連携できるけどページ表示速度の都合でこちらで設定 ※複数設定するのでタグマネージャーでも良かったかもしれないけど、表示速度にほぼ影響しないことからバラバラで登録しています |
| SiteGuard WP Plugin | セキュリティ対策プラグイン |
| WP Multibyte Patch | 日本語サイトなら必須のプラグイン ※ファイル名やスラッグを日本語にするなら、必要不可欠 ※実のところ、ファイル名やスラッグ名を日本語にしていないので、おそらくはなくても問題はないが入れている |
| WP-Optimize – クリーン、圧縮、キャッシュ | データベース最適化用として使用 ※他にもキャッシュの指定や画像の圧縮などの機能があるが、他のプラグインが適していると判断して使用していない |
| XML Sitemap & Google News | XMLサイトマップとして利用 ※著作ページは含めていないのと「お問い合わせ完了」ページは含めないように設定、優先順は適当に調整している ※Google ニュースサイトマップが強いと個人的には考えていて、地域向けコンテンツがあるなら是非とも入れておきたい |
コンテンツ編
今回、運営者情報にパーパスを追加していたのですが、パーパスの追加は限定的だと思われたので参考にしたリンクなどは省略します。
コンテンツは、情報の過不足がないことと、「知りたい」「行きたい」「したい」「買いたい」といった閲覧者の行動目的を達成できるページになっていることを意識して作ることがオススメです。
画像・データ(表)・疑問に対する回答・ストーリー性を意識してみましょう。
サイト同様、キーワードも需要があるかどうかを意識してくださいね!
ページのコピーコンテンツかどうかのチェック
サービス詳細ページを作ったときに使用しました。
OGP情報・title(タイトル)タグ・meta description(メタディスクリプション)
OGP確認
SWELLにはアイキャッチ画像がサムネイルで表示されるので問題ないとは思いますが、テキストなどは確認できるわけではないので、一括でチェックできるツールを使うと楽です。エラーで表示してくれるので、アイキャッチ画像の設定漏れが見つけやすいのも有り難いです。
TITLE & META情報抽出
大体問題ないけど、たまに「もう少し、ここはこうした方が良いかな?」という文章が見つかるので、有り難いです。
スマホサイトのテーブルのUI
スマートフォンのテーブルのときに見づらくて困ったことと、できる限りスクロールさせたくなかったので、見やすいテーブルが載っていないかなぁ…と探したときに利用したページです。
最終的に2列にする方向でテーブルを整えることで落ち着きました。
プライバシーポリシー・免責事項の書き方
プライバシーポリシー自体はノウハウがあったんだけど、重要な情報ならともかく、プライバシーポリシー改定の度にお知らせをするのも…と思ったので、「公表されたら適用」としたくて例文を探すのに見ていました。
構造化データ(JSON-LD)
SWELLの構造化データを確認していて、気になったところがいくつかあった(例:組織ではないのに「Organization」がデフォルトで組み込まれていた)ことと、分からないまま何でも従って対応するのは私の職責から無責任ではないかと考えたこと、運営者情報ページで運営者情報の要素を入れたかったことから、私はSWELLの構造化データをOFFにして独自で対応しています。
※SWELLの構造化データで問題ない人はそのままで。このプラグインを使うか独自で追加する人は、「SWELL設定」の「構造化データ」タブを開いて「JSON-LDを自動生成する」のチェックを外そう。
基本の書き方を知らない人用の記事があります。
あまり見慣れない文字列が多いと思いますので、少々難しく感じると思います。基本的にはSWELLのデフォルトで問題ないのですが、知っておくと便利なので是非ご一読ください。
私の場合、運営者情報ページに運営者情報を追加しています。
authorの画像を参考に情報を更に追加して、公式ページで使えるプロパティを更に追加しました。(ここでは、sameAsを追加)その他、構造化データ「Person」の参考として、Schema.org公式サイトも見ていました(更に追加したのは「image」と「jobTitle」と「honorificPrefix」)
記事・ニュース記事・ブログタイプについて分からなくなることがあったので、そういうときに便利なまとめページも有りました。
今回事業用サイトを作っていて、構造化データについては勉強不足であると痛感するばかりでした。
画像アップロード編
これらのツールを愛用しています。私自身は画像をあまり使うことないため、無料版で十分ですが、画像をたくさん使う人はプラグイン版(無料・有料)「TinyPNG – JPEG, PNG & WebP image compression」もあるので、是非ご検討ください。
※「EWWW Image Optimizer」プラグインと併用すると「重複してるよー」って警告メッセージを出すのが気になることと、画像を使うときってパソコンで画像を作成するので、こまめに圧縮してからアップロードでいいかな…と思って入れませんでした。
余談:画像を縮小・拡大するときのリサンプリング方法
いつもどっちかどっちなのか忘れるので、備忘録として残しておきます。
SWELL・WordPressカスタマイズ編
※ここから先は、ほぼ自分用のコンテンツです。SWELLやWordPressで自分なりにカスタマイズしたいときの備忘録として使うために記載していますが、参考になりましたら幸いです。
※何かしていて対応したのに解決していないときもやってみてね。あと、必ず解決するとは限らないので、解決しなくても恨まないでね。
PHPファイルの修正が増えるので、phpのエラーチェックができるテキストエディタを使うのがオススメです。
PHPのサンプルソース内の1行目はPHPファイルの開始宣言なので、2行目からコピーして使用してくださいね。
WordPress共通
ここでは、基本的にはどのWordPressテーマでも問わず使えるカスタマイズを紹介しています。
中にはテーマに機能が含まれていることもあるので、テーマの仕様・機能をご確認の上でご一読ください。
URLに含まれる文字列で条件分岐したい
ブログサイト「パーパス」を作るときに使用しました。
(使用例)「URLにブログサイトのカテゴリーが含まれていなかったら表示する」といった分岐を入れるのに使用
WordPressのURL・URIパスを取得したり出力する関数を知りたい
「home_url()」が非推奨かどうかを知りたくて調べてました。(結論:大丈夫でした)
他にも掲載されているので、参考になると思ったので掲載しておきます。更新日が2022年なので問題ないとは思いますが、使用する前に非推奨関数になっていないかを調べてから使うと安心です。
404エラーページをカスタマイズする
404エラーページ作成するときに見たページです。
最終的にプラグイン「404page」を使用しました。この方法はSWELL以外でも使えるよ。
カテゴリーページのURLから「category」を消す
Webサイトの階層構造を考えたら許容できなかったので利用しました。(後述「補足:Webサイトの階層構造について」参照)
せめて「category」がページとして見える状態になっていれば良かったんだけど……。
そして、URLから「category」を消すと、カテゴリーの2ページ目以降と子カテゴリーが404エラーになることがあります。(無理に「category」をURLから消したため、仕方ないのですが……)
そのため、修正した状態に合わせてカテゴリーの2ページ目以降と子カテゴリーのパーマリンクの設定も修正する必要があります。
補足:Webサイトの階層構造について
Webサイトの階層構造と何を問題視しているのかは、このページで解説しています。
簡単に結論だけを記載すると、
私は『存在していないコンテンツの階層』が適していないと考えたため、「category」をURLから消したいと考えたため、カスタマイズしました。
パンくずリスト作成
愛用しているプラグイン「Breadcrumb NavXT」
なぜ愛用しているのかというと、構造化やCSSのクラスの指定など、細かい調整がしやすいからです。
テーマのカスタマイズ(子テーマ)が不可避になってしまうため、特にこだわりがない人はテーマ固有のパンくずリストを使うと良いと思います。
子テーマの修正をしたい方は次でまとめているので、パンくずリストの項目を御確認ください。
構造化データ(JSON-LD)のパンくずリスト
パンくずリスト(見た目)を作成したあと、構造化データのパンくずリストも用意しておきます。
構造化データを自力で対応できる程まだ不慣れだったこと、テーマのカスタマイズが多岐にわたってしまうことを懸念してプラグインを利用して対応することにしました。
※当サイトでは、パンくずリスト・記事(ブログ)・WebSiteの設定で使用しています。パンくずリスト以外はヘルプページ見なくても大体分かるので大丈夫だとは思います。情報が多いのでプラグイン名で検索すると他の設定マニュアル記事も出てくると思いますよ!
Contact Form 7にショートコードを登録したい
埋め込みでプライバシーポリシーを表示させたかったので使用しました。
※「WPCF7_Shortcode」は非推奨になっていて、「WPCF7_FormTag」になっているから気をつけてね!
Contact Form 7に完了ページ(サンクスページ)を追加したい(GA4でコンバージョンとして設定したい)
コンバージョン(目標)を設定するなら、あった方がいいお問い合わせ完了ページ。特にGA4で設定するときは設定が楽になるので設定しておきたい。
※本当はパラメーター等でどこの完了ページなのか一発で分かるようにしたかったけど、うまく動作しなかったので諦めました。GA4の経路データから見ることにします。
2022年9月6日追記:後日やっぱり複数の完了ページ(サンクスページ)が必要になったので。
もう少し、なんとかできないか探してみたところ、良いページを見つけまして。
このおかげで複数の完了ページ(サンクスページ)を用意することができました。
細かいところまでちゃんと判別するとページの管理が大変になってしまうので、種別問わず「お問い合わせ」は「お問い合わせ完了ページ」、「サービス購入前同意書」は「サービス購入前同意書同意完了ページ」、「資料請求」は「資料ダウンロードページ」をそれぞれ表示することにしました。
「送信」→「送信完了ページ」への移動の時間が、ちょっと遅くなるのが懸念事項ですが、他で遅くなっているわけではないので、許容範囲ではあると思います。(何かを送っているというのは伝わるので、ブラウザ(タブ)を即閉じする人…いないといいなぁ……)
※お問い合わせ完了ページの経路についてはGA4の経路データから見ることにします。
お問い合わせフォーム(Contact form 7)スパム対策
reCAPTCHAが手っ取り早いのですが、ログイン画面でもないのにあると煩わしさがあるので。これをテキストエリア(お問い合わせ内容)のところに入れておけば大丈夫かなと思います。ひらがなが必ず入るのは日本語のみなので使える方法ですね。
reCAPTCHAを設定したい方はプラグイン公式ヘルプページに設定方法が載っているので参考にしてください。
※これを適用すると日本人以外からは受け付けなくなっちゃうので、ターゲットが国内限定の方のみ、ご活用ください。
<?php
// 英語スパムメールの防止
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
function wpcf7_validation_textarea_hiragana($spam_result, $target_tag)
{
$target_name = $target_tag['name'];
$target_value = (isset($_POST[$target_name])) ? (string) $_POST[$target_name] : '';
// テキストエリアが複数ある場合は、IF文内の後ろに「 && $target_name == 'your-message'」を追加(your-messageは指定の名前に変更ください)
if ($target_value !== '' && !preg_match('/[ぁ-ん]/u', $target_value)) {
$spam_result['valid'] = false;
$spam_result['reason'] = array($target_name => '申し訳ありません。この内容は送信できません。お手数をおかけいたしますが、今一度ご入力ください。');
}
return $spam_result;
}JS・CSSを追加したい!
「Simple Custom CSS and JS」プラグインを愛用しています。
管理画面上から追加・修正できるのがものすごく便利。
私は有料版にはしていませんが、有料版にするとページごとに読ませるようにもできるので、必要なページにのみ適用したいCSSやJSがある人には便利な機能です(カスタマイズとして追加したいCSSやJSだけど、一部のページだけしか使わないなら、読み込まないようにできるので、データが少し軽くなる分、ページ表示高速化の助けにもなると思います)
※保守管理やページ表示速度のことを考えると、それくらいになるまでCSSを追加することのないようにした方が良いです。
高速化したい!
サーバー側で圧縮に対応しているか確認するために見ていました。
※エックスサーバーはデフォルトで圧縮に対応しているので不要かも。
WebP変換したい!
私はリサイズなし・WebPのみにして使用しています。
※SWELLのフルワイド機能で背景画像を使っている人は、遅延読み込みのチェックを外さないと「表示されたり表示されなかったり」といった不都合が起こりますので、要注意です。
WebP変換を適用するときは、htaccessファイルにWebPの設定をする必要があります。
普段使っているコードを掲載します。よかったらご利用ください。
※クリエイトアコード(夜空きり)のやり方を載せていますが、プラグインの情報をコピペしても問題ありません。
※コメントアウトするときは#(半角シャープ)を使います。
#
# WebP
#
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_URI} (?i)(.*)(\.jpe?g|\.png)$
RewriteCond %{DOCUMENT_ROOT}%1%2.webp -f
RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1$2\.webp [L,T=image/webp,R]
</IfModule>
<IfModule mod_headers.c>
Header append Vary Accept env=REDIRECT_accept
</IfModule>
<IfModule mod_mime.c>
AddType image/webp .webp
</IfModule>
<Files ~ ".(webp)$">
Header set Cache-Control "max-age=864000, public"
</Files>「#BEGIN WordPress」の上(「SiteGuard WP Plugin」プラグインを入れた場合は「#SITEGUARD_PLUGIN_SETTINGS_START」の上)に設置してください。
※他のプラグインのコードも入っている可能性もあるので、その場合は一番上に設置。
ファイルのダウンロードを設定したい!
資料のダウンロードを追加するときにダウンロードにパスワードを設定したかったため、プラグイン「Download Manager」を導入しました。
ボタンのデザインをCSSで調整することも考えたのですが、メンテナンスコストもかかるので、できるだけプラグインの設定準拠で進めようと考えると、このページがなかったら、困っていたと思います。大変有り難かったです……!(特にダウンロードボタン周り)
セキュリティ対策のために、メディアライブラリフォルダの中に「PHPを実行しない」htaccessファイルを入れていたのですが、このせいで400エラーが出てダウンロードできないことが分かったので、取り外ししました。このプラグインを使っている人で、該当する場合は気をつけてくださいね!
(プラグインを別なものに変えたり、調べたりで、原因調査と解決にしばらくかかっちゃいました……)
SWELL固有
当サイトは、WordPressテーマ「SWELL」を使って制作しています。
ここでは、SWELL固有のカスタマイズ方法を掲載しています。
先人達に感謝です…!
SWELLカスタマイズするとき、総合的に見るといいページ
SWELLのヘッダーの右側に「お問い合わせ」「電話番号」ボタンを設置したい!
最終的にブログパーツを呼び出す方法で対応したのですが、右側に「お問い合わせ」「電話番号(リンク)」等のコンバージョン(目標)を設置するときに活用するといいと思います!
SWELL「この記事を書いた人」の設定変更(または非表示)
別で運営者情報を記載してリンク先を「運営者情報」に繋げるつもりだったので非表示にするために確認したページです。
SWELLのテキストリンクのホバー演出の装飾を追加する
ホバー演出が大体ついているのにテキストリンクのホバー演出だけ付いてないのが逆に不思議だなと思った次第。
SWELLのグローバルメニュー(ヘッダーメニュー)を2行にしたい!(アイコンを追加したい!)
SWELL、長いメニュー名にするとブラウザの幅を狭めたときにメニューが見切れてしまうので、2行の英語表記「Service」で補完する方法を選んだ次第。メニューの数とメニュー名の文字数は少なくするといいと思います。
SWELLでカテゴリーページを編集したい!
正直、まだカテゴリーページを整備する程の記事数がないのですが、コンテンツが充実してきたら順次対応していくつもりで参考にしたいページとして紹介しておきます。
SWELLのNO IMAGE(ノーイメージ)画像を設定したい!
大体「外観>カスタマイズ」で辿れば設定項目(設定ページ)が見つかるんだけど、ついつい検索してしまう……せっかくなので紹介しておきます。
SWELLでブログカードを設定したい!
ブログカード欲しくて調べた。
これを見つけたとき、脳内で「あー!なるほどー!!」と言ってました。多機能なので、まだまだ把握しきれてないみたいです。SWELLの場合は「ブログカード=関連記事ブロック」と覚えておくと良さそうです。
SWELLの記事スライダーを別のページでも表示したい!
使ってないけど、役に立つと思って収集した情報です。
私は、更にカスタマイズしてショートコードで呼び出せるようにしました。
設定はSWELLの記事スライダーに準拠するので、細かい条件を指定したい場合は不向きなのでご注意ください。
<?php
/*
* 記事スライダー拡張(ショートコード)
*/
add_shortcode('slide_box', function () {
get_template_part('parts/top/', 'post_slider');
});カスタマイズしたいけど不安な方はご相談ください!
お困りの方は、ぜひ「Web技術サポート・Webコンテンツサポート」をご利用ください。
おまけ:事業用サイトのカスタマイズ編
クリエイトアコード(夜空きり)が納得のいかない部分などは独自でカスタマイズを入れています。
親テーマの更新の度に同じ修正を子テーマにするつもりなので、マニュアル目的で残すため、記事にしました。
参考になりましたら幸いです。