同一カテゴリー商品ページへのリンクを最下層のカテゴリ名・リンクを取得して張る方法

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

同一カテゴリー商品ページへのリンクを張りたい理由

前回の投稿で、関連商品を表示する方法を書きましたが、商品登録時に1つ1つ設定しなければなりません。
これは結構な手間ですし、完売商品も表示されてしまいます(在庫ナシと表示せることは可能です)。

ここからは当店の事情ですが、当店は生まれ年のワインを贈りたい方のためのECサイト。
ある商品を見たときの関連商品(比べたい商品)は、同じヴィンテージ(年号)のワインです。
そして、商品カテゴリーはヴィンテージ毎に設定していました。

なので、
関連商品を見たい=この商品のカテゴリーに登録されている別の商品も見たい
です。

そこでこの商品が登録されているカテゴリーへのリンクを張ることにしました。

登録カテゴリーの名前とリンクを取得して表示する方法

当初は、それぞれのワインのカテゴリー(○○年)を商品登録時に手作業で張ろうと思ったのですが面倒ですし、過去のワインの作業が結構大変です。
そこで、最下層のカテゴリ名・リンクを取得して自動で表示できたらよいと思いました。

これは調べると、シラツキさん運営の『カケウェブ|HTML・CSS・jQuery・WordPress(CMS)など』さんでご紹介されていたコードで簡単に解決しました。

<?php $cats = get_the_category();
$current_cat = '';
foreach ( $cats as $cat ) {
if ( ! $current_cat || cat_is_ancestor_of( $current_cat, $cat ) ) {
    $current_cat = $cat;
}
} ?><a href="<?php echo get_category_link( $current_cat ); ?>"><?php echo $current_cat->cat_name; ?></a>


カケウェブ|HTML・CSS・jQuery・WordPress(CMS)など』より(シラツキさん、断りなくコード引用させていただきました。不都合があればご一報ください。)

実際に貼ったコードとその結果

小テーマのwc_item_single.phpの任意の場所に以下のように張りました。

<!--○○年一覧へ-->
<div style="text-align: right;margin: 20px auto">
<?php $cats = get_the_category();
$current_cat = '';
foreach ( $cats as $cat ) {
if ( ! $current_cat || cat_is_ancestor_of( $current_cat, $cat ) ) {
    $current_cat = $cat;
}
} ?><a class="btn-style-link" href="<?php echo get_category_link( $current_cat ); ?>">ほかの<?php echo $current_cat->cat_name; ?>ワインを見る</a>
</div>
<!--○○年一覧へ(終了)-->

表示はこのようになります。
(赤いボタン形式になるようにcssで設定しています)
カテゴリー一覧へ

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください