12月
05
2013

welcartに商品のソート(並び替え)機能を付けるカスタマイズ

welcart カスタマイズ

あったらいいな、この機能。とか思って3ヶ月。
よくよく他のサイトを見てると自分もつかっているこのソート(並び替え)機能。
価格・新着・一覧等、ソート機能を付けてみました。

Welcartに価格・新着・一覧等、ソート機能を付けるカスタマイズ

1:商品新着順(新しい商品→古い商品)
2:商品古い順(古い商品→新しい商品)
3:値段安い順(安い→高い)
4:値段高い順(高い→安い)
5:ランダム
6:全商品一覧(1ページ)
この6つを付けたいと思います。
(*他にもタイトル順・ID順等お好きな物で)

商品を順番に並べるというより、wordpressの記事を順番にソートする機能で適用できそうです。
query_postをorderbyでソートしていくようです。

orderby=’ID’ ポストID
orderby=’date’ 日にち
orderby=’rand’ ランダム
‘ASC’ ↑
‘DESC’↓
’showposts=-1’ 全件表示

が!welcartの値段の出力は出来ないそうです・・・。泣!
welcartで値段をソートするには’値段’をカスタムフィールドで挿入しないといけないそうだー。
と言う事で、値段のカスタムフィールドを全商品に入れる必要があります。
カスタムフィールド(priceの場合)をソート機能で表示させるには、
meta_value&meta_key=price

まとめたコードがこちら。

<form name="irekae" method="get" id="sort_form5" class="sort_form5">
<select name='narabi' onChange="document.forms['irekae'].submit()" >
<option value="sort1"<?php if(!isset($_REQUEST['narabi']) || $_REQUEST['narabi'] == 'sort1') echo ' selected="selected"';?>>新しい順</option>
<option value="sort2"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort2') echo ' selected="selected"';?>>古い順</option>
<option value="sort3"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort3') echo ' selected="selected"';?>>価格:安い順</option>
<option value="sort4"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort4') echo ' selected="selected"';?>>価格:高い順</option>
<option value="sort5"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort5') echo ' selected="selected"';?>>ランダム</option>
<option value="sort6"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort6') echo ' selected="selected"';?>>全商品一覧</option>
</select>
</form>
<?php $sortset = $_GET['narabi']; ?>
<?php $sortall = array(
"sort1" => 'order=DESC&posts_per_page=24&paged=',
"sort2" => 'order=ASC&posts_per_page=24&paged=',
"sort3" => 'order=ASC&orderby=meta_value&meta_key=price&posts_per_page=24&paged=',
"sort4" => 'order=DESC&orderby=meta_value&meta_key=price&posts_per_page=24&paged=',
"sort5" => 'orderby=rand&posts_per_page=24&paged=',
"sort6" => 'showposts=-1&orderby=asc'
); ?>
<?php if($sortset != '') {
$sort = $sortall[$sortset];
} else {
$sort = $sortall["sort1"];} ?>
<?php echo $sort; ?>
<?php query_posts($sort . $paged); ?>
view raw gistfile1.txt hosted with ❤ by GitHub

このコードで下記の様なソート機能が付けれます♩
ソート機能 (新しい順⇔古い順のみ)
welcartカスタマイズ

値段のカスタムフィールド足さないと価格のソートは出来ないので、消費税上がるタイミングで全商品にカスタムフィールド足そうかな・・・。

PS:welcartのItem list Layoutでは、全ての商品にカスタムフィールドを一括で登録・更新出来る機能があるみたい。この機能だけ欲しい。
&沢山作ってしまうと、かなりの数の重複しているページが出来上がってしまうんですが、google先生的にこれは大丈夫なんだろうか。
welcart ソート機能

参考にしたURL
:記事一覧をソート(並び替え)する
:投稿記事の表示数とソート
:ポストを並び替えして抽出する
:welcartでソート(並び替え)機能

Maybe you like!!


Comment

【コメントの投稿について】
   Furaha clothingでは、「Disqus」のコメントを使っています。
  ツイッターやフェイスブックなどにアカウントをお持ちの方は、ログインすることで
  自分のプロフィールでコメント出来ます。アカウントの無い方もメールアドレスでコメント出来ます。
  (入力したアドレスはコメントには表示されません。)
  


ブログの感想や質問など お気軽にお書きください。

Shop Now

セレクトショップ furaha clothing
コーディネートブログ

Recent post

BLOG Tag