採用サイト制作に最適なWordPressテーマ「ISSUE」の機能概要

ワードプレステーマ別

TCDテーマEGO.WooCommerce:コンテンツビルダー「商品一覧」の商品の並び順を「メニューの順序」で制御する方法

Q. WooCommerceの「商品」の「高度な設定」>「メニューの順序」を使って商品の並び順を自由に制御したいのですが、効きません。

▼変更箇所イメージ
設定画面イメージ

A. contents-builder.phpを編集して並び順を変更することができます。

TCDテーマオプションにて、トップページのコンテンツを作成する「コンテンツビルダー」にある「商品一覧」では、次の3つの並び順のみを提供しているため、WooCommerceの「メニューの順序」は機能しない仕組みとなっています。

  • 日付(新しい順)
  • 日付(古い順)
  • ランダム

そこで、これら以外の並び順を指定するために、contents-builder.phpの該当箇所をコメントアウトし、新たな条件を定義します。
このとき「メニューの順序(Menu Order)」で指定した並び順が適用されるようにします。

カスタマイズ例

編集するファイル: contents-builder.php
編集する箇所: 588行目付近~

if ( 'random' === $cb_content['order'] ) :
	$cb_query_args['orderby'] = 'rand';
elseif ( 'date2' === $cb_content['order'] ) :
	$cb_query_args['orderby'] = 'date';
	$cb_query_args['order'] = 'ASC';
else :
	$cb_query_args['orderby'] = 'date';
	$cb_query_args['order'] = 'DESC';
endif;

↓コメントアウトして、並び替え対象(orderbyがmenu_order)と並び順(降順DESC)を定義

// if ( 'random' === $cb_content['order'] ) :
// 	$cb_query_args['orderby'] = 'rand';
// elseif ( 'date2' === $cb_content['order'] ) :
// 	$cb_query_args['orderby'] = 'date';
// 	$cb_query_args['order'] = 'ASC';
// else :
// 	$cb_query_args['orderby'] = 'date';
// 	$cb_query_args['order'] = 'DESC';
// endif;
$cb_query_args['orderby'] = 'menu_order';
$cb_query_args['order'] = 'DESC';

これを応用して、商品のレビュー評価や商品名順などほかの方法にも変更することができます。

▼レビュー評価が高い順

$cb_query_args['orderby'] = 'rating';
$cb_query_args['order'] = 'DESC';

▼商品名順

$cb_query_args['orderby'] = 'title';
$cb_query_args['order'] = 'ASC';

参考情報

Shortcodes included with WooCommerce

orderby – Sorts the products displayed by the entered option. One or more options can be passed by adding both slugs with a space between them. Available options are:
・date – The date the product was published.
・id – The post ID of the product.
・menu_order – The Menu Order, if set (lower numbers display first).
・popularity – The number of purchases.
・rand – Randomly order the products on page load (may not work with sites that use caching, as it could save a specific order).
・rating – The average product rating.
・title – The product title. This is the default orderby mode.

order – States whether the product order is ascending (ASC) or descending (DESC), using the method set in orderby. Defaults to ASC.

この記事は役に立ちましたか?

もし参考になりましたら、下のボタンで教えてください。
今後の記事作成の参考とさせて頂きます!

同じテーマのカスタマイズ記事