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

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

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

3457閲覧

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

sanset

総合スコア186

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/07/25 10:00

編集2016/07/25 11:34

前回、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の投稿名はパーマリンクは投稿名を使用しています。

htaccess

1# BEGIN WordPress 2<IfModule mod_rewrite.c> 3RewriteEngine On 4RewriteBase / 5RewriteRule ^index\.php$ - [L] 6RewriteCond %{REQUEST_FILENAME} !-f 7RewriteCond %{REQUEST_FILENAME} !-d 8RewriteRule . /index.php [L] 9</IfModule> 10 11# END WordPress 12 13<IfModule mod_rewrite.c> 14 RewriteEngine on 15 RewriteCond %{HTTPS} off 16 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 17</IfModule>

PHP

1<?php 2/* Template Name: product-List */ 3?> 4<?php get_header(); ?> 5 6<?php get_product_list(); ?> 7 8<?php get_footer(); ?>

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matobaa

2016/07/25 10:50

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

2016/07/25 11:02

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

回答1

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/25 11:21

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanset

2016/07/25 11:36

再度ご回答ありがとうございます。 数値がWordPressでどのような扱いを受けるのか分かりました、ありがとうございます。 特定の固定ページに対して、文字でも個別にハイフンで値を取得し処理を変えるのは難しそうですね…。 一応他の方の意見も頂ければ欲しいところですが、特に現状と変わらなければベストアンサーにさせていただきたいと思います。
kei344

2016/07/25 12:31

> 特定の固定ページに対して、文字でも個別にハイフンで値を取得し処理を変えるのは難しそうですね…。 難しいと思います。 下記URLを参考に独自のURL実装をするのも出来ますが、WordPressの知識が結構必要になります。学習コストを無視するなら下記方法が回答になります。(このやり方のサポートは自身が無い) 【Rewrite APIその2 WordPressでアプリを作る基本(WordPressプラグイン開発のバイブルのボツ原稿から) – Shinichi Nishikawa's】 http://nskw-style.com/2014/wordpress/wordpress-app-with-rewrite-api.html 【WordPressに独自のURLを追加する。2014年版 | Firegoby】 https://firegoby.jp/archives/5309
sanset

2016/07/26 01:45

ありがとうございます。頂いた記事を元に挑戦してみたところ、無事理想のURLで表示させることができました。とても参考になる記事でした。 add_rewrite_ruleという便利な関数があったのですね。
kei344

2016/07/26 08:17

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

2016/07/29 03: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'を追加することで最優先にできます。
kei344

2016/07/29 04:32

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問