「制作実績CMS」を作った話

はじめに

これまで自分のポートフォリオサイトは、HTML/CSS/JavaScriptで制作した静的サイトとして運用していました。

ただ、制作実績が増えてくると毎回HTMLを書き換える必要があり、管理が少し大変になってきました。

そこで今回は、既存のポートフォリオサイトをWordPress化し、「制作実績をCMSで管理できる構成」に移行してみました。

実際に行った内容や、つまずいたポイント、学んだことをまとめていきます。


WordPress化しようと思った理由

今回WordPress化しようと思った理由は、主に以下の3つです。

  • 制作実績を簡単に追加できるようにしたい
  • ブログ機能を使いたい
  • WordPressの自作テーマ制作を学びたかった

特に「制作実績を管理しやすくしたい」というのが大きな理由でした。

静的サイトの場合、制作実績を追加するたびにHTMLを編集する必要があります。

しかしWordPress化することで、管理画面から投稿するだけで実績を追加できるようになります。


制作実績を「カスタム投稿」で管理

今回一番やりたかったのがここです。

通常の「投稿」とは別に、「制作実績」専用の投稿機能を作成しました。
functions.php にカスタム投稿を追加。

register_post_type('works', array(
  'label' => '制作実績',
  'public' => true,
));

archive-works.php を作成

制作実績一覧ページも作成しました。
archive-works.php
このファイルを作ることで、
/works/
に一覧ページが自動生成されます。
最初は404エラーが出ましたが、パーマリンク設定を保存し直すことで解決しました。
WordPressではかなりあるあるなポイントらしいです。


Swiperを使って2段スライダー化

制作実績一覧は、Swiperを使って2段スライダーにしました。

最終的には以下のような構成です。

[カード][カード][カード]
[カード][カード][カード]

Swiperの grid 機能を使用しています。

grid: {
  rows: 2,
}

ただ、この実装はかなり苦戦しました。


苦戦したポイント

overflow: hidden 問題

Swiperはデフォルトで overflow: hidden が効いているため、矢印を外側に出そうとすると切れてしまいました。

かなり試行錯誤しましたが、最終的には「矢印なし + ドットのみ」のシンプル構成に落ち着きました。

結果的に今のサイトデザインにはかなり合っていると思います。


ページネーションの位置問題

最初はページネーションをSwiper内部に置いていました。

しかしカードと被ってしまったため、最終的にはSwiperの外に移動。

<div class="swiper works_swiper">
</div>

<div class="swiper-pagination"></div>

この形にすることで、かなり綺麗にまとまりました。


制作実績をカテゴリ管理

制作実績はカテゴリで分類できるようにしました。
現在は以下のカテゴリを作成しています。

  • Web制作
  • 画像制作
  • ロゴ制作

将来的にはカテゴリごとにSwiperを分ける予定です。

例えば以下のような構成を考えています。

Web制作
→ Webサイト実績Swiper

画像制作
→ バナー・SNS画像Swiper

ロゴ制作
→ ロゴ一覧

CMSとしてかなり拡張しやすい構成になりました。


ACFを使って外部リンク化

制作実績の画像をクリックすると、そのサイトへ直接飛べるようにもしました。

そこで使用したのが Advanced Custom Fields(ACF)です。

「サイトURL」というカスタムフィールドを追加し、投稿ごとにURLを設定。

<?php the_field('site_url'); ?>

これによって、制作実績一覧から直接サイトへ遷移できるようになりました。

かなりポートフォリオ感が強くなったと思います。


今回学べたこと

今回のWordPress化で、かなり多くのことを学べました。

  • WordPressテーマ構造
  • header / footer 分割
  • functions.php の役割
  • カスタム投稿
  • archiveページ
  • Swiper連携
  • CMS設計
  • ACF
  • WordPressループ

特に「CMSとしてどう設計するか」を考える機会になったのが大きかったです。

単純にデザインするだけでなく、「どう管理しやすくするか」を考えるのはかなり実務的な経験になりました。


まとめ

静的HTMLサイトをWordPress化したことで、制作実績の追加や管理がかなり楽になりました。
また、自作テーマ制作やカスタム投稿など、WordPressの仕組みもかなり理解できるようになってきました。

今後は以下も進めていきたいと思っています。

  • カテゴリ別Swiper化
  • single-works.php の作り込み
  • 画像制作・ロゴ制作の追加
  • ブログ強化

これからWordPressの自作テーマに挑戦したい方の参考になれば嬉しいです。