WordPress を静的サイトの一部としてインストール(共存)/ Web Design Leaves

June 21, 2021

WordPress Logo WordPress を静的サイトの一部としてインストール(共存)

以下は、静的サイトの一部として WordPress をインストールして共存させる方法についての覚書です。

更新日:2021年06月16日

作成日:2021年6月13日

概要

サイト全体を WordPress で構築するのではなく、例えば、お知らせやブログを WordPress で作成し、その他のページは静的ファイルで構成するなど、サイトの一部として WordPress をインストールして使用する(共存させる)ことができます。

サイトの一部として WordPress を使用する場合、WordPress をドキュメントルートではなく、サブディレクトリにインストールすることができ、以下のような使い方があります。

  1. WordPress を単純にサブディレクトリにインストール
  2. WordPress をサブディレクトリにインストールしてサイトアドレスを変更

1. 単純にサブディレクトリにインストール

単純にサブディレクトリにインストールするだけの場合、インストールしたサブディレクトリ以下に WordPress のコンテンツは展開され、通常の WordPress のインストールと特に違いはありません。

例えば example.com で news というディレクトリにインストールした場合、WordPress のトップページは http://example.com/news/ でアクセスし、WordPress の記事は http://example.com/news/ 以下の URL に表示されます。

2. サブディレクトリにインストールしてサイトアドレスを変更

WordPress の設定でサイトアドレスを変更すると、インストールしたサブディレクトリ名に関わらず WordPress の記事を http://example.com/ 以下の URL に展開することができます。

1.の場合は news などのインストールしたサブディレクトリ名が URL に含まれますが、この方法の場合はカテゴリーやカスタム投稿タイプを http://example.com/ 以下に展開することができます。

この場合、WordPress をインストールするサブディレクトリはインストールのための専用ディレクトリのような扱いになります。

※ 実際には、WordPress をルートディレクトリにインストールして静的ファイルと共存させるなど、色々な方法があるかと思います。

WordPress のインストール方法

WordPress のインストール方法はサブディレクトリにインストールする場合でも、通常のルートディレクトリにインストールする方法と同様、データベースを用意してインストールするディレクトリに WordPress のファイルを配置してインストールを実行するだけです。

関連ページ:WordPress のインストール

以下は、静的サイトの一部としてサイトのサブディレクトリに WordPress をインストールして利用する方法についての覚書です。

また、以下の例の静的サイトは PHP で作成して、ヘッダーやフッターなどの共通部分を外部ファイル化(コンポーネント化)しています。

関連ページ:共通部分を PHP で管理(外部ファイル化・テンプレート化)

WordPress をサブディレクトリにインストール

例えば以下のような構成の静的サイトを作成して、

example(サイトのルートディレクトリ) ├── about │   └── index.php ├── contact │   └── index.php ├── index.php └── products └── index.php

news というディレクトリを作成し、そこに WordPress のファイルを配置してインストールすることができます。

example ├── about │   └── index.php ├── contact │   └── index.php ├── index.php ├── news //サブディレクトリに WordPress のファイルを配置してインストール │   ├── index.php │   ├── wp-activate.php │   ├── wp-admin │   ├── wp-blog-header.php │ │・・・中略・・・ │   ├── wp-config.php │   ├── wp-content │ │・・・中略・・・ │   └── xmlrpc.php └── products └── index.php

この場合、例えばローカル環境でバーチャルホストを設定していれば、以下の URL にアクセスすれば WordPress のトップページが表示されます。

http://example.localhost/news/

その他の静的なファイルには特に影響はありません。

パーマリンクの設定(URL)

以下の例では WordPress の各記事にアクセスする URL は「/news/カテゴリー名/投稿名」のようにするため、「設定」→「パーマリンク設定」でカスタム構造を選択して、「/%category%/%postname%/」のように設定しています。

また、以下のようなカテゴリー「新製品」(スラッグは new-products)を作成しています(デフォルトの未分類はブログに変更)。

上記の設定で、カテゴリーを「新製品」にして作成した記事(スラッグ:product-1)は以下のような URL でアクセスできます。

http://example.localhost/news/new-products/product-1/

カテゴリーが「新製品」の一覧ページは、以下のような URL でアクセスできます。

http://example.localhost/news/new-products/

カテゴリーが「ブログ」の記事の場合は、以下のような URL でアクセスできます。

http://example.localhost/news/blog/hello-world/

どのような内容をカテゴリーとして作成するかによりますが、例えば上記のように news の下に blog が来るのは少し不自然かもしれません。

単に WordPress をサブディレクトリにインストールしただけの場合、上記のようにインストールしたサブディレクトリの下に WordPress の記事や一覧ページが表示されます。

静的ファイルで WordPress を実行

PHP が実行可能であれば静的ファイルでも、WordPress の wp-load.php を読み込んで WordPress のタグを実行することができます。

この例では PHP を使って共通ファイルなどを読み込んでいます(以下の header.php や footer.php などは静的サイトの共通ファイルであり、WordPress のテンプレートではありません)。

以下は静的サイトのファイル(products/index.php)で wp-load.php を読み込み、サブループでカテゴリーのスラッグが new-products の投稿記事を5件表示する例です。

products/index.php

・・・中略・・・

製品関連記事

5, ‘post_type’ => ‘post’, ‘category_name’=>’new-products’ //カテゴリーを指定 ); $my_query = new WP_Query( $args ); ?> have_posts() ) : ?> have_posts() ) : $my_query->the_post(); ?> ‘, ‘

‘); ?>