を:
オプション1:古き良きrsort()
rsort($relatedProducts, SORT_NUMERIC);
注:この機能は、新しいを割り当て配列内の要素へのキー。キーを並べ替えるのではなく、割り当てられている既存のキーが削除されます。この場合、これは無関係ですが、後で処理するために配列キーが重要な場合には大混乱になります。
オプション2:usort()
usort($relatedProducts, sort_desc);
function sort_desc($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b) ? -1 : 1;
}
オプション3:wc_products_array_orderby()
wc_products_array_orderby($relatedProducts, $orderby = 'id', $order = 'desc')
することはできませんだけでソートプロダクトIDによってもtitle, date, modified (date), menu_order, price
によります。
これは、最終的にはIDに基づいてソートするための次の関数を呼び出しますが、最終的な出力に「DESC」注文のarray_reverse()
を行います。
/**
* Sort by id.
* @since 3.0.0
* @param WC_Product object $a
* @param WC_Product object $b
* @return int
*/
function wc_products_array_orderby_id($a, $b) {
if ($a->get_id() === $b->get_id()) {
return 0;
}
return ($a->get_id() < $b->get_id()) ? -1 : 1;
}
なぜあなたは独身で直接カスタム関連製品のレイアウトをコーディングすることは避けてください商品ページのテンプレート?
関連製品がすでに woocommerce_output_related_products
機能を content-single-product.php
テンプレートで woocommerce_after_single_product_summary
アクションに夢中にされています。
単一商品ページの関連商品の注文を変更する場合は、 をwoocommerce_output_related_products_args
で簡単にフィルタできます。または サイドバーなどのテンプレートの外側に必要なときは、[related_products orderby="ID"]
ショートコードを使用できます。
私は強くフォルダ template\single-product
からではなくcontent-single-product.php
に追加のコードを追加し WooCommerceテンプレートrelated.php
を使用してカスタマイズすることをお勧めレイアウトを変更します。
標準のWooCommerce/WordPressの規則を逸脱すると、将来的に保守、デバッグまたはアップグレードするのが難しいコードクラフトが作成される可能性があります。さらに、他のプラグイン、テーマ、またはあなた自身のカスタムコードが上記の関数に「フック」したい場合や、HTML出力の場合はそうすることができません。