• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:各ページの持つIDで条件分岐したい場合)

WordPressのページ条件分岐について

このQ&Aのポイント
  • WordPressのページ条件分岐方法を知りたいです。
  • 記事の個別ページにバナーを表示させたいですが、idの識別方法が分かりません。
  • WordPressのソースを見てもidの識別方法がわかりませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1336/1814)
回答No.3

別途、データ用のテキストが保存されているのなら、まあ話は簡単です。 $my_data_url = 'http://example.com/hoge/data.txt'; $my_data_txt = file_get_contents( $my_data_url ); ~これで変数 $my_data_txt の中にデータテキストの内容が全て、一連なりの文字列として代入されてるので。後はそれを必要に応じて加工して使います。まあ通常のテキストなら普通は1個1個のデータを改行で区切ってるだろうから… $my_array = explode( "\n", $my_data_txt ); ~こんな感じで配列 $my_array の中に改行で区切られた配列データに変換可能です。ここまで来れば後はどうとでも出来ると思いますが、まあテキストで別のデータを書き出す場合、後から再利用しやすい様な書式で最初から保存する様な仕様にして置く事が重要です。 最初の例文から察するに、data.txt の中身はカンマ区切り( ,)で保存されてるのかな?その場合は、 $my_array[0] == 'id:1, タイトル:○○, 記事内容:○○○○○。'; ~となっているので、そこからさらに多次元配列としてデータを呼び出します。これらの事を踏まえて汎用PHPコードを書くと、大体以下の様になります。 ━ ココから ━━━━━━━━━━━━━━━━━━━━━━━━ /* 初期設定 */ $my_data_url = 'http://example.com/hoge/data.txt'; $my_data_txt = file_get_contents( $my_data_url ); $my_data_txt = rtrim( $my_data_txt, "\n" ); //末尾の改行を削除 $my_array = explode( "\n", $my_data_txt ); //最初の配列化 $i = 0; foreach ( $my_array as $val ) { $my_array[$i] = explode( ',', $val ); $i++; //さらに多次元の配列化 } /* 結果を表示 */ echo "<ul>\n"; foreach ( $my_array as $val ) { echo '<li>'. $val[0] .':'. $val[1] .':'. $val[2] ."</li>\n"; } echo "</ul>\n"; ━ ココまで ━━━━━━━━━━━━━━━━━━━━━━━━ 注意点としては、データ(配列)の中に「改行のみ」が含まれる可能性があるか無いかで、ちょっと記述が変わって来ます。その辺は実際にデータを作る人じゃないと分らない部分なので自分で何とかして下さい。 後、言うまでも無いと思いますが。今更、実はテキストデータはShift-JISで~とか、PHP4でも可能な方法はありませんか?~とかは無しの方向性で(笑)!

infinity38
質問者

お礼

ご回答いただきありがとうございました。

その他の回答 (2)

  • 4017B
  • ベストアンサー率73% (1336/1814)
回答No.2

ああ~そういう事ですか…。相変わらず回答者側に高度なESP能力が要求されるサイトですね(笑)。 ん~と結論から言うと、誰も貴方の質問に答える事は出来ない。何故なら貴方のサイト構成や、そもそもどんなDBを使っているのか?それとも単なる静的なHTMLページの集まりなのか分らないから。 例文で示されたデータと言っても、それは一体全体何なのか?JSON?MySQL?それとも個別ページに割り振られたid要素とか? WPに置ける get_the_ID関数 の仕組みは、大前提としてWPのシステムに依存してるので。同じPHPだからといって簡単に移植再現出来るものでもありません。まあ出来るけど(笑)。 と言う訳で貴方のいうその「データ」とやらの形式を、第三者にも理解出来る形で腹を割って話して貰わないと先には進めません。ちなみに自分はDB管理は門外漢なんで、その場合はあまり有効な助言は出来ません。

infinity38
質問者

補足

申し訳ありません。 DBを使わずテキストデータのみです。 静的ではなく、すべてphpファイルです。 初めに書いたデータというのは、 フォームに入力された記事タイトルと本文をdata.txtに保存したものです。 このときタイトルと本文を入れ込んだ個別ページ(phpファイルを作成します) サイト構成は、 ・トップページに投稿された記事が順番に表示される。 ・その記事をクリックするとその記事の個別ページに移動する。 という感じになります。 個別ページから、data.txtのID番号をどうやって取得する方法があるかご教授いただけたらと思います。 よろしくお願い致します。

  • 4017B
  • ベストアンサー率73% (1336/1814)
回答No.1

一応、WPの基本的なPHP構造などが理解出来ているという前提で。 記事IDを取得したい部分で、WP関数の一つ get_the_ID を使います。 $my_id = get_the_ID(); ~以上の様な記述で、変数に記事IDが代入されます。 公式wikiにも割とそのものズバリな解説が載っています。同時に参照して下さい。 >http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_the_ID 注意点としてはWP関数でありがちな“ループ内で使う”という事です。

infinity38
質問者

補足

ご回答ありがとうございます。 質問の書き方が悪くて申し訳ありません。 WordPressはまったく使わずに、そのような機能を作ろうとしています。 そのget_the_ID();というid参照の仕組みを、自分でphpでどう書けば良いかわからず困っています。