• HOME
  • WORKS
  • SERVICE
  • ABOUT
  • BLOG
  • NEWS
  • RECRUIT
  • CONTACT

エンタメ特化型、心を動かすWeb制作。
まずは無料で相談いたします!

公開日:2025/04/10

ProcessWireを使ったブログ詳細ページの構築

ProcessWireは、開発者にとって非常に柔軟で拡張性の高いコンテンツ管理システム(CMS)です。

この記事では、ProcessWireを使ってブログの詳細ページを作成する方法について説明します。

ブログ詳細ページの作成には、ProcessWireの独自のフィールド管理機能や、PHPによる動的なコンテンツ表示が重要な役割を果たします。

フルスタックサイト構築

ブログIDの取得とページの取得

まず、URLパラメータからブログのIDを取得し、そのIDに対応するページをデータベースから取得します。

ProcessWireでは、URLから簡単にパラメータを取得することができ、これを使ってブログ詳細ページを表示します。

$blogId = $input->get('id');  // URLからIDを取得

IDが取得できたら、そのIDを使って対象となるページを$pages->get()で取得します。

この際、親ページがblogというテンプレートを使用していることを前提にしており、ブログの詳細ページを指定するために、テンプレート名や親ページを指定します

$blogPage = $pages->get("template=blog-detail, parent=$blogParent->id, name=$blogId")

これにより、ブログ詳細ページのコンテンツを動的に表示することができます。

メタ情報の取得

メタ情報はSEOやソーシャルメディアでのシェア時に重要です。

このコードでは、メタ情報を取得してページに反映させる方法を示しています。site-metaというテンプレートを使って、サイト全体のメタ情報を管理し、個別の記事のタイトルやディスクリプションを動的に設定しています。

$metaPage = $pages->find("template=site-meta")->first();

これで、ProcessWireの管理画面からメタ情報を管理して取得しています。

タイトルやディスクリプションを反映させることができます。

ブログ詳細ページのデザイン

ブログの詳細ページでは、まずタイトルやリード文(ブログの導入部分)を表示し、その後にブログの本文が表示されます。

blog_imagesというフィールドから最初の画像を取得して、背景画像として設定する方法を使っています。

画像がない場合はデフォルトの画像を表示するようにしています。

<div class="〇〇" style="background-image: url('<?php
  $image = $blogPage->blog_images->first();
  if ($image) {
      $thumb = $image->size(1700);
      $imageUrl = $thumb->url;
      echo "https://〇〇〇〇〇〇" . str_replace('/blog', '', $imageUrl); 
  }
?>')"></div>

このように、画像のURLを動的に取得し、スタイル属性で背景画像として設定しています。

ブログ本文の表示

ProcessWireではリピーターフィールド(blog_repeater)を使って、ブログ本文をセクションごとに表示することができます。

各セクションには、タイトルやテキストコンテンツを設定できるため、自由に記事を構造化できます。

リピーターフィールドの使い方の一例は以下の通りです。

<?php if($blogPage->blog_repeater->count): ?>
  <?php foreach($blogPage->blog_repeater as $section): ?>
    <div class="box">
      <?php if($section->blog_contents_title): ?>
        <h2><?= $section->blog_contents_title ?></h2>
      <?php endif; ?>
      <?php if($section->blog_contents_text): ?>
        <div><?= $section->blog_contents_text ?></div>
      <?php endif; ?>
    </div>
  <?php endforeach; ?>
<?php endif; ?>

これにより、記事の各セクションを柔軟に管理でき、デザインもより直感的に構築することができます。

総合的な管理のしやすさ

ProcessWireの最大の特徴は、コンテンツの管理が非常に直感的であることです。

ユーザーインターフェースがシンプルで、開発者が自由にカスタマイズできる点が魅力です。

また、ProcessWireでは、PHPを使って動的にコンテンツを表示できるため、SEOやパフォーマンスを考慮したサイト作りが可能です。

この記事では、ProcessWireを使用してブログの詳細ページを構築する方法を解説しました。

ProcessWireの強力なフィールド管理機能を活用すれば、動的なコンテンツ表示やSEO対策を施したページを簡単に作成することができます。

開発者にとっても、柔軟で拡張性の高いCMSであるため、クライアントの要望に応じたサイトをスムーズに構築できる点が大きな魅力です。

ProcessWireを使えば、自由自在にデザインや機能を追加できるため、他のCMSでは実現が難しいカスタマイズも容易に行えます。

関連記事

  • ProcessWireでフォーム送信処理に必要な読み込みファイル
  • ProcessWireは「ヘッドレス」も「従来型」も自由自在。選ばれるCMSの理由とは?
  • ProcessWireをサーバにアップロードする手順
  • ProcessWireにおけるsortパラメータ活用術とカスタムフィールドによる柔軟な並び順制御
  • 【SEO対策】ProcessWireで自動サイトマップ(インデックス)の生成と送信方法
  • CMSに強い制作会社はここまでやる。ProcessWire管理画面セキュリティ強化術
  • ProcessWireでテスト環境と本番環境を一つの管理画面で!
  • ProcessWireで実現する!シンプルで自由な会員制サイト構築ガイド

Back to list

© 2019- MUSOU.