【社内案件】で、AIを使ったコーディング・プログラミングで、ちょっと奇妙な事例がありましたので、情報共有です。
実現したい動作・要件としては、投稿のタイトル通り。
「WooCommerceの商品詳細ページで表示される関連商品を、商品タグで抽出したい」でした。
AI Geminiのコーディングサポートを使って、楽に解決しようと試みました。
[AIプロンプト]
WooCommerceの商品詳細ページで表示される関連商品「related products」を、商品タグで抽出したい。
注意事項としては、以下の2つ。
・別のお勧め商品表示機能upsells products(アップセル)と重複抽出しないこと。
・サーバー負荷軽減のため、キャッシュを活用し、毎回ランダム抽出しないこと。
質問がなければ、コードを作成して。
と、指示をすると、優秀なAI Geminiくんは、以下のように答えて、わずか数秒でコードを書き出してくれました。
WooCommerceのデフォルトの関連商品抽出ロジックをフックして、同じタグを持つ商品を抽出するように変更します。
add_filter( ‘woocommerce_related_products_args’, ‘custom_related_products_by_tags’, 10, 1 );
function custom_related_products_by_tags( $args ) {
100行くらいのPHPプログラム…
(動かなかったので、詳細は書きません)
}
これがそのまま動けば良かったのですが…。
エラーは出ないのですが、期待通りの動作にはならなかったので、人力調査開始です。
WooCommerceのプラグインファイルを解析、related product関連の記述を追いかけて、行きついた結論が以下のコードです。
add_filter( 'woocommerce_product_related_posts_relate_by_category', '__return_false' );
簡単に、どういう意味かというと「WooCommerceの関連商品を選択する際に、商品カテゴリーを基準にするのは止めて」という意味です。
前提として、関連商品の抽出には、デフォルトで、商品カテゴリーと商品タグの両方が用いられています。
そのうち、商品カテゴリーを基準にするのを止めれば、理想的な実装ができたわけです。
わずか1行で。
ちなみに、商品タグを抽出基準から、外したい場合は以下のコードです。
add_filter( 'woocommerce_product_related_posts_relate_by_tag', '__return_false' );
教訓としては、AIは、すごくコードを書くのが早くて、時に超的確で超優秀なのですが、まだまだ妄信はできないな、という感想でした。
日本語でも英語でも情報が少なかったので、情報共有のため残しておきます。
WordPressユーザーの皆さまの開発のご参考になれば幸いです。