検索キーワードを入力:

wordpress:アーカイブページをカスタムフィールドの値で並び替える

フォーラムでも同じ事で悩んでる方がいて、
投稿をカスタムフィールド値でソートし、更に時系列に並べる
こちらは解決したようですが、ぼくがやりたいことはちょーっと違っていたのです!
たとえば、良くショッピングサイトであるような『価格順』『新着順』なんかのボタンをアーカイブページに実装したかったのです。
例として、カスタムフィールド名を『item_price』とします。
これをボタンで昇順降順で自在に並び替えたい。
ということで以下覚え書き

プラグイン使わなくても出来ますが、めんどくさいのでプラグイン頼み。
WP Smart Sortを使用します。
これデフォルト使用でもいいんですが、スマートではないので。。
プラグインフォルダにUP後有効化したら、オプション画面からSmart Sort設定画面へ。

smartsort
使用するカスタムフィールド名を探し、Display Text欄に名前をつけ、右側の追加ボタンを押します。
今回は例としてフィールド名『item_price』にDisplay Text欄を『価格』としてみました。
追加後、下にスクロールすると次のような項目があります。
sort2
この、価格(_item_price-pm)ASC という部分が非常に重要で、
_item_price-pmが並べ替えのキーで、
ASCが並び順のキー(昇順(asc)・降順(desc)となります。
ここまで分かれば、あとはテンプレート側で値をとってquery_postsの引数に追加するだけです。
(query postsの引数に関しては、テンプレートタグ/query postsを参照)
引数は
ssort = 並び替えのキー
sdir = 並び順のキー
[sourcecode language=”php”]
<?php
$ssort = $_GET[‘ssort’];
$sdir = $_GET[‘sdir’];
?>
<?php if (have_posts()) : query_posts("ssort=$ssort&sdir=$sdir"); ?>
[/sourcecode]
最後に、ページ内に実装するボタン、『価格順』のリンクを
http://○○.com/?cat=カテゴリID&ssort=_item_price-pm&sdir=asc
とか
http://○○.com/?cat=カテゴリID&ssort=_item_price-pm&sdir=desc
にする。カテゴリIDの取得についてはさすがに割愛します。
以上、ものすごく省略しながらの覚え書きでした。

About Little

WordPressをいじくり倒して早10年。一人ぼっちでひたすらソースとにらめっこ厨。 有り難いことに、Welcart/WP e-commerce/WooCommerce/EC-Cube等で多数ECサイトを制作させていただいたけど、ふと気付いた、ちゃんと売れるのか。 効果的に売れるようにするためにはどうしたらいいのか。ということでお勉強を兼ねてECサイトも運営中。
2009年7月8日

Related Posts

One comment found

Comments for: wordpress:アーカイブページをカスタムフィールドの値で並び替える

  1. Pingback: アーカイブページをカスタムフィールドの値で並び替える | setting_web

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です