(15)[WordPress]固定ページで記事一覧を表示するために行き詰まったあれこれ2012/09/182014/02/24WordPressWPカスタマイズ仕事でWordPressを使ったサイトを構築して、home.phpをサイト全体のトップページにして、blog.phpという固定ページをブログのトップにしたいなーと思って、行き詰まったり解決したりしたまとめです。同じようなことしてる方はいっぱいいると思うんですが、メモをかねて。2013/3/25追記このエントリはquery_postsを使った方法を紹介しています。weblogその後こちらの記事を拝見し、非推奨な書き方をしていたことに気がつきまして、ご迷惑をおかけして非常に申し訳ありません。これもきっとpre_get_postsで出来るんだ!とがんばってみたのですが、固定ページのループへの作用のさせ方がわからず...。どなたか、参考になる記事などご存知でしたら教えていただけると嬉しいです。追記:解決策を教えて頂きました![WordPress]固定ページをブログのトップとして記事を一覧表示する方法WP_Queryで記事一覧を取得する方法の他に、管理画面の設定から簡単にできるという事実...!こっちのほうが断然お勧めです!それでは以下、こんな書き方もできますよということで、一応残しておきます。WordPressで普通の構造のWebサイトを作りたいサイトのアドレスがsample.comという名前だとして、その直下にWordPressをインストールすると、最終的にはindex.phpが読み込まれるのですが、home.phpが存在する場合はそちらが優先されるので、その性質を利用します。普通のブログならば記事一覧のループをindex.phpに書いていたのを、blog.phpという名前(スラッグ)の固定ページを作ってその役割を担ってもらおうという、そういう考えです。表示したい場所にこんな感じで書きます。source*http://bono.s206.xrea.com/2007/04/394-wp_get_posts/ブログのトップ(記事一覧)ページをつくる超簡単に、このような構造だとします。普通のブログのように、index.phpにメインループを書いてみます。index.phpをトップで使わない場合でも、カテゴリーやアーカイブページではindex.phpを使うことになるので、どのみち必要になります。ここからつくりましょう。?>こんな感じになりますね。sideber.phpは、レイアウト上は左にありますが、SEO的にコンテンツが先にきたほうが良いのでCSSで順番を入れ替えます。?>って名前をつけて。「blog」っていうスラッグの固定ページを新規でつくって、ページのテンプレートをさっきつくったblog.phpにして。「blog」っていう名前でつくった固定ページが何故かひとつだけ出てくるのみ。なんでー!!固定ページへのループはそのままじゃダメいろいろ調べた結果、どうやらquery_post()というテンプレートタグを使うと出来るみたいです。メインループを詳細にカスタマイズできたりするもので、1ページに1回しか使えないなど制約があるようです。詳しくはコーデックを。?>こんな感じで、投稿記事のみという指定をして、query_postsをループの直前に書いたら、表示されたー!!2012/9/24追記:8行目を修正しました!当初、query_posts('post_type=post');と書いていたんですが、そのままだと記事が増えてページングが必要になった際、同じ記事が表示されるという不具合に遭遇しました。query_posts()を使用の際は、ページ番号が入っていないと、常に1ページ目を取得しようとしてしまうらしいので、'paged='.$pagedも書かねばならないようです。ページでページングを利用したい条件分岐ができなくなった表示されてウキウキしながら作業をしてたら、あれ...is_single()とかの条件分岐が...効かない!?なんでー!!ということで、またもググったところ、query_postsを変更してしまうと、条件分岐は使えないとのこと。Webそうだったのか...。query_postsを変更したらリセットするのを忘れてはいけないようです。?>MANAさんマジ女神!!ありがとうございます!!!ようやく形になりました行き詰まってググるの繰り返しだったので、まとめてみました。初心者でも、“デキる奴”と思わせるプレゼンテーションの基本とコツこれからExcelのマクロを勉強したいという方に!簡単な練習問題作りました。PM固定ページでブログ一覧を表示させるのに手間取っていたので、助かりました。PMSatoshiさんコメントありがとうございます。AM本気でドツボにハマっていました。シンプルで分かりやすい説明に助けていただきました。PMあざっす助かりました。PMYousanさん、コメントありがとうございます。PM随分時間をかけて悩みましたが、この記事のお陰で解決できました。ありがとうございました。PM2020miraiさん、コメントありがとうございます。PM本当に勉強になりました。PM大変勉強になりました。ありがとうございました。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。週間人気記事ExcelVBAでカレンダーコントロールを自作するExcelで1行・1列おきの合計を求めるSUM関数の書き方これからExcelのマクロを勉強したいという方に!簡単な練習問題作りました。-2019/09/27運営者*you非IT系の会社で社内業務アプリ開発したりWeb担してたり。ExcelとかAccessの本を書いてます。