ヘビ牧場

ヘビ牧場
  • Gulp
  • WordPress
  • PHP
  • JavaScript
  • CSS・Sass

爬虫類についての記事を書いていたWordPressブログサイトをオリジナルテーマでフルリニューアルしました。

Gulp

  • MAMP PRO環境(SSL化・バーチャルホストを設定)とのホットローディング連携
  • scssのコンパイル
  • jsファイルの圧縮
  • 画像の圧縮、png・jpg画像のWebP変換(ソースコード側の画像)

WordPress・PHP

機能面

実装した機能の抜粋となります。

  • カスタム投稿タイプで記事を分類
  • カスタムタクソノミーでタグ機能を実装
  • トップページKV部分におすすめ記事5件を表示
  • トップページに各投稿タイプを更新日順に2件ずつ表示
  • sitemap.xmlの自動生成処理を実装
  • ページネーションの実装
  • 各記事の目次を自動生成
  • 各記事のパンくず・パンくずのJSON Schemaを自動生成
  • 検索機能の実装(全体検索・カスタム投稿ごとの検索)
  • ACFのカスタムフィールドと連携して投稿エディターと各種SEO系タグを実装
  • ACFのオリジナルwysiwygエディターの作成
  • TinyMCEプラグインを作成し、wysiwygエディターにオリジナルボタンを追加
  • Gutenbergエディターの制御・機能制限(一部の固定ページのみ利用)
  • Contact Form 7を使用して問い合わせフォームを実装

セキュリティ対策

実装した機能の抜粋となります。

  • API機能によるユーザー名露呈防止
  • 投稿者アーカイブによるユーザー名の露呈防止
  • WordPressバージョンの露呈防止
  • ログインURLの変更
  • WordPressとプラグインの自動更新停止
  • その他不要機能の停止

使用プラグイン

なるべく各種機能を自分で実装するため最低限の利用としました。

Advanced Custom Fields PRO

  • Flexible Content(柔軟コンテンツ)をメインエディターとして採用(一部固定ページのみGutenbergを使用)
  • フロント側は別途カスタマイズ

ACF: Better Search

  • ACFで作成した投稿は「wp_posts」ではなく「wp_postmeta」テーブルにデータが格納されるため、投稿データを検索結果に含めるために利用

Contact Form 7

  • フォーム機能の実装に利用
  • スタイリングやバリデーションは別途カスタマイズ

JavaScript

  • Vanilla JSで作成(脱jQuery)
  • スライダーはSplideを使用(Vanilla JSの軽量ライブラリ)
  • 各種スクロールアニメーション処理
  • 検索フォームのバリデーションを実装
  • 各種リサイズ時の処理
  • Contact form 7と連携した問い合わせフォームバリデーションの実装
  • Contact form 7と連携したサンクスページへのリダイレクト処理
  • Gulpにてファイルを圧縮

Sass

  • css設計はBEMを採用
  • スマホ画面は各種デバイスに対応するため「vw」を利用し、リキッドレイアウトでコーディング(scssのfunctionにてpxをvwに変換)
  • PC〜タブレット画面はコンテンツ幅のみ「vw」を利用し、他はソリッドレイアウトでコーディング
  • Gulpでコンパイル
  • 役割ごとにscssディレクトリを設計

その他

  • htaccessによる旧URLから新URLへの301リダイレクト
  • htaccessによるURL正規化(www有無・http→httpsへのリダイレクト等)
  • Google Tag Managerによるタグ配信・トリガー設定
  • Google Analytics4によるアクセス解析
  • Google Search Consoleによる検索パフォーマンス解析
  • Microsoft Clarity(ヒートマップツール)による解析
  • editorconfigを使ったフォーマット管理
  • Gitでのバージョン(管理テーマディレクトリ、Gulpでコンパイルするソースファイルなど)