サポート » 使い方全般 » スラッグをID順に表示させたいです。

  • 解決済 saito_desu

    (@saito_desu)


    WordPress/PHPともに初心者ですよろしくお願いします。

    記事の投稿時にチェックを入れたカテゴリーのスラッグを class が付いてブラウザに表示されるソースを引っ張ってきたのですが、複数のカテゴリを選択した際ブラウザ上では50音で表示されてしまいます。
    これをスラッグのID順(若い方から)には出来ますでしょうか?

    いまはこのコードを貼ってます↓

    <?php $categories = get_the_category();
     if($categories){
     foreach($categories as $category) {
     echo ‘<p class=”‘.$category->slug.'”>’.$category->cat_name.'</p>’ ;}
    };?>

    よろしくお願い致します。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック投稿者 saito_desu

    (@saito_desu)

    ご連絡ありがとうございます。
    隅々まで読んだのですが打開策を見つけられませんでした。。。

    わたしの環境はオリジナルのテーマを設定しております。

    ご指導お願いいたします。

    Tsuyoshi.

    (@andante0727)

    この辺りを参考に。wp_get_post_terms を使って、$taxonomies には 'category' を指定して、orderby には 'term_id' を指定すればいいのかな、と思います。検証してませんが。
    パラメータ詳細は wp_get_object_terms を参考に。

    Tsuyoshi. さん、ありがとうございます。

    動作確認していませんが、少しシンプルな別の関数をみつけました。

    get_the_category()

    を下記のコードで置き換えればよさそうです。

    wp_get_post_categories( get_the_ID(), 'order=ASC&orderby=term_id' )

    関数リファレンス/wp get post categories

    fieldsパラメータが足りませんでした、失礼しました。

    wp_get_post_categories( get_the_ID(), 'orderby=term_id&fields=all' )

    Tsuyoshi.

    (@andante0727)

    wp_get_object_terms では all がデフォルトなのに、wp_get_post_categoriesids がデフォルトなんですね。なるほど!

    トピック投稿者 saito_desu

    (@saito_desu)

    皆さまご回答ありがとうございます
    gblsm様のソースを入れてみましたが class にスラッグがついて、文字としてはブラウザ上に反映されませんでした。
    例:<p class=”スラッグ名”> </p>
    みたいな感じです。

    <?php $categories = wp_get_post_categories( get_the_ID(), ‘orderby=term_id&
    fields=all’ );
    if($categories){
    foreach($categories as $category) {
    echo ‘<p class=”‘.$category->slug.'”>’.$category->cat_name.'</p>’ ;}
    };?>

    で合ってますでしょうか?
    私自身の勉強不足も有るのですが、基礎的な部分を理解しておらず申し訳ありません。

    Tsuyoshi.

    (@andante0727)

    <?php
    $post_categories = wp_get_post_categories( get_the_ID(), 'orderby=term_id&fields=all' );
    
    foreach( $post_categories as $cat ){
    	echo '<p class="' . $cat->slug . '">' . $cat->name .'</p>' ;
    }
    ?>

    cat_name の 部分は name にしてください。

    'orderby=term_id&
    fields=all' );

    の部分の改行はNGです。これそのまま貼り付けると動かなくなります。
    ソースコードを貼り付けるときは code ボタンを押してからコード全体を括って整形してくださいー!

    よろしければこちらもご確認ください。

    トピック投稿者 saito_desu

    (@saito_desu)

    ありがとうございます!
    無事に反映され、望む表示ができました。

    ロジックの部分を勉強してみます、ありがとうございました!

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「スラッグをID順に表示させたいです。」には新たに返信することはできません。