Welcartの商品の最後に関連商品を表示する。
よくある、商品に対して関連商品を表示する方法。関連付けにはタグを利用。
(商品ページと同じタグを使っているページを関連商品として認識)
//関連商品を最後に表示(タグ関連づけ) add_filter('the_content', 'related_item',22); function related_item($content){ global $usces, $post; if( ($post->post_mime_type != 'item' || !is_single()) ) return $content;//商品ページ以外の場合戻る $tags = get_the_tags($post->ID); //現在の投稿のタグを取得 $taglist = array(); foreach($tags as $value){ //タグのIDをtaglistに入力 $taglist[] = $value->term_id; } $myQuery = new WP_Query(); // WP_Queryオブジェクトの生成 $param = array( //パラメータ配列 'tag__in' => $taglist, //投稿のタグのいずれかが含む場合を関連商品と設定 'show_posts' => '4', //表示数は4個に設定 'post__not_in' => array($post->ID) //自身のページは排除する。 ); $myQuery->query($param); // クエリをパラメータで指定 $html = ' <ul class="clearfix">'; if($myQuery->have_posts()){ while($myQuery->have_posts()){ $myQuery->the_post(); //ここに商品データを表示 $html .= '<li><a href="' . get_permalink($post->ID) . '">' . usces_the_itemName('return',$post->ID) . '</a></li>'; } } $html .= '</ul>'; return $content . $html; }
*(11/03追記。Welcartページ以外にも表示されていたバグを修正)
後は商品の画像でも貼り付けたりするとそれっぽいかも。
価格はIDからは引っ張れなかった。引っ張る方法をさがすか、値段をカスタムフィールドに入力しておいて対応する予定。
(11/03追記。どうするか迷いましたがskuの中から一番安い価格を選択して表示するようにしましたが、テーマと関係ないので割愛)