2010/8/25

WordPressで「先頭に固定表示」をWP_Queryでも活かす

WordPressには「この投稿を先頭に固定表示」という便利なオプションが公開状態に用意されているのですが、この機能、普通にWP_Queryで無視されます!で色々英語サイトなどを徘徊して調べまわった結果、こういう対処ができることがわかりました。

$p = array(
‘cat’=>$catid,
‘post__in’ => get_option(‘sticky_posts’)
);
$my_query = new WP_Query($p);

を処理してから、

$p = array(
‘cat’=>$catid,
‘showposts’=>4,
‘post__not_in’ => get_option(‘sticky_posts’)
);
$my_query = new WP_Query($p);

という二段構えで実現すると。なんか自然なやり方じゃないんですけどね。もう一つ注意点がありまして、sticky_postsが設定されていない(どの投稿にも先頭に固定表示のチェックが入ってない)と、post__inの指定が無視されて他の条件で拾って来てしまいます。なので拾って来たものを、

<?php if (is_sticky()) : ?>

とやって先頭に固定表示指定されている投稿のみ表示するようにしなきゃいけません。

この辺はもうちょっと自然な対応ができるように、今後改善されると良いですね。

ひとり仕事: フリーランスという働き方
(2012-10-5)
売り上げランキング: 14,705
100円
WordPressデザインレシピ集
狩野 祐東
技術評論社
売り上げランキング: 197,569
WordPress 高速化&スマート運用必携ガイド
こもりまさあき 岡本渉
エムディエヌコーポレーション
売り上げランキング: 435,263

加藤 康祐 / 企画・設計

1980年1月12日生まれ。フリーランス歴15年。プランナー、デザイナー。加藤康祐企画設計代表。学生時代にデザイン会社でWebデザインを経験。2005年よりフリーランスとしてキャリアスタート。これまでに個人から上場企業まで、100以上のクライアントとのプロジェクトを経験。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの編集・運営、社会的養護の子どもたちの自立を支援するNPOのサポート等。趣味はラグビーと料理。Keep the head up, Bind tight & Stay low.

加藤康祐企画設計

是非、フォローしてください!
Twitter / Instagram