WordPressテーマ内でif-elseステートメントを使用しています。ケース/スイッチを使用してIFとELSEを実行するよりクリーンな方法が必要です。
これは私の現在のコードです:
if($theme_measure_icon->slug == 'elektrisch-rijden'):
$icon_class = 'icon--scooter';
endif;
if($theme_measure_icon->slug == 'efficient-laden'):
$icon_class = 'icon--battery';
endif;
if($theme_measure_icon->slug == 'stadshubs'):
$icon_class = 'icon--logistiek';
endif;
<i class="icon <?= $icon_class; ?>"></i>
PHPクラスで同じことを行うにはどうすればよいですか?
回答 3 件
スラッグに応じて取得できる値を使用して連想配列を定義する方がはるかに簡単で読みやすいIMOです。
$classes = [ 'elektrisch-rijden' => 'icon--scooter', 'efficient-laden' => 'icon--battery', 'stadshubs' => 'icon--logistiek', ]; <i class="icon <?= $classes[$theme_measure_icon->slug] ?>"></i>
この次のアプローチを試して、switchステートメントで探しているものを実現する必要があります。
switch ($theme_measure_icon->slug) { case 'elektrisch-rijden': $icon_class = 'icon--scooter'; break; case 'efficient-laden': $icon_class = 'icon--battery'; break; case 'stadshubs': $icon_class = 'icon--logistiek'; break; default: // code to be executed for your default icon class, you can remove this if you don't want it there } <i class="icon <?= $icon_class; ?>"></i>
関連した質問
- WooCommerceDokanマルチベンダーは特定の注文ステータスを持つベンダーの注文を非表示にします
- 特定のユーザーからすべてのユーザーワードプレス機能を削除する
- XeroWebhook内のXeroAPIにPOSTリクエストを送信する方法
- 「woocommerce_order_get_formatted_billing_address」フィルターフックを介してメタデータを取得します
- ホームページに別のロゴを表示する:ワードプレス
- ランダムなカテゴリのwoocommerceを表示します:ホームページ
- カスタムWooCommerceの配送方法と距離料金の値の問題
- PHPで多次元配列をループする
- woocommerceの価格スタイルを変更する方法、ただし現在の製品の単一の製品ページのみ
- WordPressは添付ファイルの名前をサムネイルが機能するように変更します
代わりに、配列をアイコンマップとして使用するのはどうですか。
PHP:
HTML:
次に、使用可能なアイコンを追加または削除するには、修正するだけです。
$icon_map
アレイ。isset()を使用して、適切なアイコンが配列内にあるかどうかを最初に確認し、未定義のオフセット警告を回避していることに注意してください。