サポート » 使い方全般 » 複数のカテゴリー名の取得方法

  • 解決済 lau87

    (@lau87)


    現在Shuffle.js(http://vestride.github.io/Shuffle/)を使って
    カテゴリーごとのボックスをカテゴリー選択時にアニメーションで出し入れをしているのですが、

    ここで複数のカテゴリーを持つ要素に対して
    data-groupsへ複数のカテゴリー名(もしくはスラッグ)を取得しているのですが
    最後のカテゴリーにもカンマがついてしまいdata-groupsが反応しなくなってしまいます。

    【カテゴリー名:category01とcategory02を持つので両方を記述したい場合】
    現在、記述しているのは

    <li class="item" data-groups=[<?php $cats = get_the_category(); foreach( $cats as $cat) {  echo '"' . $cat->slug . '",';  } ?>] />

    <li class="item" data-groups='["category01","category02",]'></li>

    となり、”category02″の最後にも“,”がついてしまいます。

    <li class="item" data-groups='["category01","category02"]'></li>

    上記のようにするにはどのようにするのが正しいでしょうか?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • PHP 末尾 削除 などで検索するといろいろ出てきますよ。
    rtrimが簡単かも?

    トピック投稿者 lau87

    (@lau87)

    Tsuyoshi.様

    ご返信ありがとうございます。

    <li class="item" data-groups=[<?php $cats = get_the_category(); foreach( $cats as $cat) {  echo '"' . $cat->slug . '",';  } $str = rtrim($str, ",");?>] />

    上記のように?の前にrtrimを記述をしたりもしてみたのですが、消えないようでした。。
    正しい記述をお教えいただけますと幸いです。

    このような感じでいかかがでしょうか?
    ※未テストです。

    <?php
    $cats = get_the_category();
    $groups = array();
    foreach( $cats as $cat) {
    	$groups[] = $cat->slug;
    }
    ?>
    <li class="item" data-groups=[<?php echo implode( ',', $groups ); ?>] />
    <?php
    $slugs = "";
    $cats = get_the_category();
    foreach( $cats as $cat ) {
    	$slugs .= '"' . $cat->slug . '",';
    }
    ?>
    <li class="item" data-groups=[<?php echo rtrim( $slugs, "," ); ?>] />

    rtrim の例も一応。
    一行になんでも書きすぎると、解読しにくいので直しました。

    トピック投稿者 lau87

    (@lau87)

    KUCKLU様
    Tsuyoshi.様

    ご返信ありがとうございます。
    Tsuyoshi.様のコードで試しましたら希望通りの

    <li class="item" data-groups='["category01","category02"]'></li>

    で出すことが出来ました。

    KUCKLU様に書いていただいたコードでもカンマは削除出来たのですが

    <li class="item" data-groups='[category01,category02]'></li>

    ダブルクォーテーションが外れておりましたので、
    今回はTsuyoshi.様のコードを参考にさせていただきます。
    どちらもご親切にありがとうございました。

    こちらでトピックを解決済みとさせていただきます。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「複数のカテゴリー名の取得方法」には新たに返信することはできません。