• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:WordPressの質問(q10013003)の続)

WordPressの質問(q10013003):$offsetのコントロール方法は?

このQ&Aのポイント
  • WordPressの質問(q10013003)の続【投稿ページ その3】で、break,continue構文以外で$offsetをコントロールする方法について教えてください。
  • 質問内容を要約すると、$offsetをコントロールするための良い方法を探しているとのことです。
  • 回答としては、データベースから取得したRSSを分けて保存し、そのまま出力する方法をおすすめします。この方法ならループをせずに$offsetをコントロールできます。また、画像1,画像2,画像3のURLについても同じサイトから取得する予定であれば、storage_rss.phpと処理を分ける必要はありません。SQLから操作するかどうかは詳細がわかりませんが、必要に応じて使い分ければ良いでしょう。

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

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (776/5751)
回答No.85

ところで、確認したいことがあります。 front-page.phpとpage-secound.phpとpage-third.phpの違いは、画像数が1か2か3でその一覧表示スタイルと、RSSの取得元だけで、ランキング表示その他は、それぞれの画像数の記事になるだけで、デザインは同じですよね。 それと、3パターンあると言われていた、アーカイブとカテゴリーと検索は、その一覧表示のデザインがfront-page.phpとpage-secound.phpとpage-third.phpのように異なるだけで他は同じですよね。

php_learn
質問者

お礼

ファイル自体を識別させて表示方法の切り替えを行うのか、それぞれの機能の箇所で分岐を行うのかどちらかになると思われます。

php_learn
質問者

補足

おっしゃる通りです。それぞれfront-page.php,page-secound.php,page-third.phpと同じデザイン記事表示になります。 画像数が異なるため、間接的にカスタムフィールドで表示ファイルの切り替えを行うように考えています。

すると、全ての回答が全文表示されます。

その他の回答 (84)

  • dell_OK
  • ベストアンサー率13% (776/5751)
回答No.4

【RSS その34】 storage_rss.phpにエラーがあります。 ---- } elseif (4 == $template_number) { $rss_table_name = 'page_rss_feed'; ---- の上の } だけの行を削除してください。

php_learn
質問者

補足

文法を見ると{}の数は一致しております。

すると、全ての回答が全文表示されます。
  • dell_OK
  • ベストアンサー率13% (776/5751)
回答No.3

【RSS その33】 ・新たにテーブルを1つ作成してif文を追加するように考えております。 それでいいと思います。

php_learn
質問者

お礼

回答ありがとうございます。

php_learn
質問者

補足

一応組んでみたのですがわからない点が複数あり質問いたします。 1,$trisect_rss_feed = $template_number(4)について RSSを3等分する関数=$template_number(4)の中身を出力するコードを組んだのですが、$=$は構文的におかしいです。 $rss1、$rss2、$rss3の中身を$template_number(4)にしたいのですがどうすればいいでしょうか? 2,$block_per_page = $trisect_rss_feed($rss1 , $rss2 , $rss3); //RSSを取得して、$rss1、$rss2、$rss3のみっつに分けてためる について聞きたいのですが、これも$=$になってしまいます。 $block_per_pageは$rss1 , $rss2 , $rss3を足した数になるのか$rss1 , $rss2 , $rss3をそれぞれ別に計算するのかよくわかりませんでした。 後々の表示の仕方と合わせる必要があるのですが、for文の$iと$jの使い方がわからず調節できておりません。 //表示 for ($i = 0; $i < $block_per_page; ++$i) { echo '<h3>RSS</h3>'; $contentA = ''; $contentB = ''; $contentC = ''; for ($j = 0; $j < $rss_per_block; ++$j) { $item_index = $i * $rss_per_block + $j; if ($item_index >= count($rss_items)) { break; } $item = $rss_items[$item_index]; ※投稿ページコード https://wandbox.org/permlink/sc0H9l8qeG0Di58R ※広告タグ例 <!-- admax --> <script src="https://adm.shinobi.jp/s/ecf84559bdac801ad27c367fffbffe2f"></script> <!-- admax --> _____________________________________________________________ <a href="https://rpx.a8.net/svt/ejp?a8mat=3NCROH+D7PD4I+2HOM+6AZAP&rakuten=y&a8ejpredirect=http%3A%2F%2Fhb.afl.rakuten.co.jp%2Fhgc%2F0ea62065.34400275.0ea62066.204f04c0%2Fa22062503859_3NCROH_D7PD4I_2HOM_6AZAP%3Fpc%3Dhttp%253A%252F%252Fwww.rakuten.co.jp%252F%26m%3Dhttp%253A%252F%252Fm.rakuten.co.jp%252F" rel="nofollow"> <img src="http://hbb.afl.rakuten.co.jp/hsb/0eb4bbd5.fe9683fe.0eb4bbaa.95151395/" border="0"></a> <img border="0" width="1" height="1" src="https://www17.a8.net/0.gif?a8mat=3NCROH+D7PD4I+2HOM+6AZAP" alt=""> ※記事内容例 <div class="t_h t_i" >7: <span style="color: green; font-weight: bold;">テスト1</span> <span style="color: gray;"> 2022/06/25(土) 20:29:32.61 ID:7Wu8zs2o</span></div> <div class="t_b t_i" style="font-weight:bold;font-size:18px;line-height:27px;color:#db7093;"> <span style="color:mediumblue;" class="anchor"></span>テスト2 <br /> テスト3 </div><br /> <div class="t_h t_i" >20: <span style="color: green; font-weight: bold;">テスト4</span> <span style="color: gray;"> 2022/06/25(土) 20:31:59.44 ID:x3DyAWsk</span></div> <div class="t_b t_i" style="font-weight:bold;font-size:18px;line-height:27px;color:#800080;"> <span style="color:mediumblue;" class="anchor">テスト5</span> <br /> テスト6 </div><br /> <div class="t_h t_i" >26: <span style="color: green; font-weight: bold;">テスト7</span> <span style="color: gray;"> 2022/06/25(土) 20:33:18.62 ID:tH7liN79</span></div>

すると、全ての回答が全文表示されます。
  • dell_OK
  • ベストアンサー率13% (776/5751)
回答No.2

【RSS その32】 先ほどの回答は撤回します。 オフセットを設定する方法は他と同じにしておきましょう。 ただ、その値をゼロにしてください。 ---- $rss_offset = 0; $sql = "SELECT * FROM {$rss_table_name} ORDER BY date DESC LIMIT %d,%d"; $query = $wpdb->prepare($sql, $rss_offset, $rss_per_page); ----

すると、全ての回答が全文表示されます。
  • dell_OK
  • ベストアンサー率13% (776/5751)
回答No.1

【RSS その31】 投稿ページに固定ページと同じRSSを表示するのでしたら、storage_rss.phpはなにもしなくていいです。 投稿ページは1ページ構成で次のページとかないのでオフセットは不要です。 先頭から表示したい件数だけ読み込んでください。 ---- $sql = "SELECT * FROM {$rss_table_name} ORDER BY date DESC LIMIT %d"; $query = $wpdb->prepare($sql, $rss_per_page); $rss_items = $wpdb->get_results($query); ----

php_learn
質問者

補足

投稿ページと固定ページでRSSを変える場合はどうすれば良いでしょうか? 新たにテーブルを1つ作成してif文を追加するように考えております。 ※新テーブル page_rss_feed テーブル名

すると、全ての回答が全文表示されます。

関連するQ&A