WordPress整体院
主にwordpressのカスタマイズやトラブル対策
  1. ホーム
  2. > WordPress
  3. > IDを指定して固定ページと投稿のリストを表示する
WordPress
2014.11.20.

IDを指定して固定ページと投稿のリストを表示する

以前、クライアントさんからの要望でid指定した投稿の一覧を表示するウィジェットを作りました。

特に読んでほしい投稿をピックアップしてサイドバーに表示するという用途に使うウィジェットです。

我ながら結構便利なウィジェットだなと思っていたのですが先日

「固定ページのIDを指定したら表示されない」

という問題を指摘されました。これは困ったと言うことで調べたメモです。

スポンサーリンク

 基本的な仕組み

この機能の基本的な仕組みとしては、

  1. ウィジェットのフィールドにIDをカンマ区切りで入れてもらいう
  2. get_posts関数で記事の配列を所得
  3. それをもとにリストを構築

という流れなのですが、get_posts関数はデフォルトでは投稿しか所得しません。だから固定ページのIDを指定しても表示されなかったわけです。

ソースとしては次のように書いていました。

[html]$postslist = get_posts(‘include=’ .$selectID);[/html]

固定ページを所得するにはget_pagesという関数があるのですが、わざわざ2種類使うのは面倒だしムダな感じがします。

幸いなことに、どちらの関数もパラメータに post_type があり色々な投稿タイプの記事を所得できるようになっていました。

post_typeで同時に複数の投稿タイプを指定するときはarryで

最初、includeパラメータのようにカンマ区切りで行けるかなと思い次のように書いてみると

[html]$postslist = get_posts(‘include=’ .$selectID .’&post_type=post,page’ );[/html]

何も表示されなくなってしまいました。

Codexをみても配列に対応しているという記述はなかったので複数の条件を指定できないのかなと思ったのですがarrayで指定すると無事にできました。

[html]$postslist = get_posts(array( ‘include’ => $selectID,’post_type’ => array( ‘post’, ‘page’ ) ) );[/html]

ちなみにpost_typeにanyを指定するとどんなタイプでも表示できるので、なんでも表示していいやという時は下の書き方の方が簡単で良いかもしれません。

[html]$postslist = get_posts(‘include=’ .$selectID .’&post_type=any’ );[/html]

スポンサーリンク
デジ部長 デジ部長 WordPress, カスタマイズ

コメント

この記事へのコメントはありません。

コメントをどうぞ

返信をキャンセルする。

メールアドレスが公開されることはありません。

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

≪前の投稿
Hot Linked Image Cacherの機能を勘違い?
次の投稿≫
ChromeでBookmark Managerをアンインストールする方法

プロフィール

HN:デジ部長
整体院とパーソナルトレーニングをやっていますが、WordPressをいじっていたらそちらの方が楽しくなり、知り合いのサイト作成やテーマ作りなどをボチボチとやっています。
このブログはそのときの覚え書きなどが主な目的でやってます。

カテゴリー

  • HTML/CSS
  • javascript
  • Mac
  • PHP
  • PPC広告
  • SEO
  • WordPress
  • カスタマイズ
  • サイト管理関係
  • テーマ開発
  • パソコン全般
  • プラグイン
  • 思った事

トップ
Copyright© 2019-2025 WordPress整体院 all right reserved