質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.60%

【状況が変わったので修正】WordPressで、固定ページのURLに対して「http://example.com/list/1」のようにハイフンで値を付けて管理したい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,599

sanset

score 182

前回、WordPressで独自のページを設けたいとこちらで相談したところ、無事回答が得られて解決しました。kei344さんありがとうございます。
https://teratail.com/questions/42187

ただ、今度は別の問題にぶつかってしまい、かなりニッチなケースな内容だと思い調べ方もよく分かりませんでしたので改めて相談させていただきます。

こちらで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
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
<?php
/* Template Name: product-List */
?>
<?php get_header(); ?>

<?php get_product_list(); ?>

<?php get_footer(); ?>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • matobaa

    2016/07/25 19:50

    質問するときのホスト名は、sample.com ではなく example.com を使ってください。
    example.com は RFC 2606で「例示用ホスト名」として予約されていますが、sample.com は実在するホスト名です。

    キャンセル

  • sanset

    2016/07/25 20:02

    ありがとうございます。修正いたしました。

    キャンセル

回答 1

checkベストアンサー

0

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]】
http://kotori-blog.com/wordpress/custom_post_type_ui/

【記事をCSVで一括登録!WordPressプラグインReally Simple CSV Importer | 株式会社LIG】
http://liginc.co.jp/web/wp/plug-in/58046

【WordPressに一括で大量の投稿データをCSVファイルを使って作成(登録)できるプラグインがとんでもなく便利!【日本語データもOK】 | 今村だけがよくわかるブログ】
https://www.imamura.biz/blog/15413


それか、WordPress で管理せず、WordPress はブログ的な使い方に限定してしまう方法かなぁ。

/index ← 単独PHPで処理
    ├ list ← 単独PHPで処理
    └ blog ← WordPress をここにインストール

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/26 17:17

    どのように実装したかを回答に書いておいてもらえれば、次に同じ問題を抱えた人の光明となりますので、できればよろしくお願いします。

    キャンセル

  • 2016/07/29 12:32

    http://nskw-style.com/2014/wordpress/wordpress-app-with-rewrite-api.html

    こちら様の記事の

    add_action( 'init', 'my_add_twitter_rewrite_rule' );
    function my_add_twitter_rewrite_rule() {
    add_rewrite_rule(
    'twitter/?[^/]*',
    'index.php?pagename=twitter&twitter_id=$matches[1]',
    'top'
    );
    }

    この記述を利用し、rewrite設定を追加しました。引数に'top'を追加することで最優先にできます。

    キャンセル

  • 2016/07/29 13:32

    追記ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • PHPに関する質問
  • 【状況が変わったので修正】WordPressで、固定ページのURLに対して「http://example.com/list/1」のようにハイフンで値を付けて管理したい