質問: 前回、WordPressで独自のページを設けたいとこちらで相談したところ、無事回答が得られて解決しました。kei344さんありがとうございます。 ただ、今度は別の問題にぶつかってしまい、かなりニッチなケースな内容だと思い調べ方もよく分かりませんでしたので改めて相談させていただきます。 こちらでWordPressの固定ページ機能を使って作成した独自のページ、 仮に「http://example.com/list/」とします。 こちらは本来、商品のリストが表示されています。 新たにデータベースに商品リストとしてテーブルを追加して、そちらを取得して表示させています。 リストには1~200の商品IDが付いており、 リストをクリックすることで「http://example.com/list/1」などへリンクさせ、 URLが「http://example.com/list/」と「http://example.com/list/1」でリストのページか商品別のページか判定して表示させる予定でした。 **しかし、何故か「http://example.com/list/1」の時だけ「http://example.com/list/」にリダイレクトされてしまいます。** **「http://example.com/list/2」など、2以降はすべてそのまま表示されます。** wordpressを使用しない、通常のWEBアプリの作成時では、上記の方法でURL管理を行うことができたため、WordPressを使用することで起きてしまったことだと思います。 商品毎に1つ1つ記事を投稿していくのは時間的に不可能なので、なんとか上記の方法で表示させたいです。 WordPressにお詳しい方、どなたかご教示お願いいたします。 【追記】 ?id=1などにすれば表示できますが、なるべく上記のURLで表示させたいです。 数値が不可能な場合は、文字IDでも構いません。 情報として役に立つかわかりませんが、テンプレートファイルのPHPと.htaccessの内容を掲載しておきます。WordPressの投稿名はパーマリンクは投稿名を使用しています。 ``` # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] ``` ``` ```
回答: WordPress はURLの扱いが特殊です。(多分言い切って良い) 固定ページの場合、1ページを複数に分割することもでき、その場合のURLが「list/1」「list/2」のようになるため、「list/1」=「list」になっただけでしょう。 それ以外のURLで「すべてそのまま表示」なのは、404.phpがあればそれを表示していると思います。(なければindex.phpを表示する仕様です) WordPress で固定ページの下にURLを作ることは、親子関係にある固定ページか先ほどのページ分割くらいです。 > > 商品毎に1つ1つ記事を投稿していくのは時間的に不可能なので > > > カスタム投稿タイプを作成し(管理用の良いプラグイン有り)、それに一括流し込みプラグインなどで流し込んでしまうのが一番問題が起こりにくいです。 【Custom Post Type UIの使い方[WordPress]】 【記事をCSVで一括登録!WordPressプラグインReally Simple CSV Importer | 株式会社LIG】 【WordPressに一括で大量の投稿データをCSVファイルを使って作成(登録)できるプラグインがとんでもなく便利!【日本語データもOK】 | 今村だけがよくわかるブログ】 それか、WordPress で管理せず、WordPress はブログ的な使い方に限定してしまう方法かなぁ。 ``` /index ← 単独PHPで処理 ├ list ← 単独PHPで処理 └ blog ← WordPress をここにインストール ```