サポート » 使い方全般 » 特定のタグの投稿数表示

  • 解決済 pos_and_go

    (@pos_and_go)


    特定のタグの投稿数を表示したいと考えております。

    フォーラムや他サイトを参考に、カテゴリ投稿数、投稿者投稿数などは表示することができ、またラグクラウドにおいての投稿数表示も可能になったのですが、特定のタグの投稿数の取得、表示がどうしても分かりません。

    方法お分かりの方いらっしゃいましたら、アドバイスお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    pos_and_goさん、こんにちは。

    get_tagの引数にタグのIDを指定すると、指定タグに関する情報をオブジェクトで取得できます。このプロパティの中にタグの投稿数もありますので、こちらを利用するのが良いのではないでしょうか。

    ID15のタグの投稿数の取得例

    $tag_properties = get_tag( 15 );
    echo $tag_properties->count;

    トピック投稿者 pos_and_go

    (@pos_and_go)

    jim912さん

    ご返信ありがとうございます。
    丁寧なご説明、誠にありがとうございました。非常に参考になりました。

    <?php $tag_properties = get_tag(タグID); echo $tag_properties->count; ?>

    という形で実装することが出来ました。本当にありがとうございます。

    実際には、タグの名前で指定して使用出来ればベターと考えております。解説して頂いたものを参考に各サイトを調べてみて、get_tagの使用例を参考にいくつか試してみたのですが、(シンタックスエラーが出る訳ではないのですが)どれもうまく表示されませんでした。試したのは以下です。

    <?php $tag_properties = get_tag(“タグネーム”); echo $tag_properties->count; ?>

    <?php $tag_properties = get_tag(‘タグネーム’); echo $tag_properties->count; ?>

    <?php $tag_properties = get_tag(=’タグネーム’); echo $tag_properties->count; ?>

    非常に厚かましいお願いですが、タグネームを指定した投稿数の表示に関して、再度アドバイス頂ければ幸いでございます。何卒よろしくお願い致します。

    モデレーター jim912

    (@jim912)

    pos_and_goさん、こんにちは。

    get_tagはIDしか指定することができません。
    タグ名やタグスラッグで指定するには、get_term_byという関数を使って実装することが可能です。

    タグ名で指定する場合は、

    <?php $tag_properties = get_term_by( 'name', 'タグ名, 'post_tag' ); echo $tag_properties->count; ?>

    タグスラッグで指定する場合は、

    <?php $tag_properties = get_term_by( 'slug', 'タグスラッグ, 'post_tag' ); echo $tag_properties->count; ?>

    となります。

    この関数は、タグだけでなく、カテゴリーやリンクカテゴリーでも指定できるので、それなりに応用が効きます。

    その反面、この関数はキャッシュを利用せず、かならずデータベースへのクエリーが発生するので、多用するとレスポンスが遅くなります。

    get_tagは、キャッシュを利用していますので、もしIDでの指定で問題がなければそのままget_tagを利用した方が早いレスポンスが期待できます。

    トピック投稿者 pos_and_go

    (@pos_and_go)

    jim912さん

    大変参考になるアドバイスありがとうございました。
    実際にやってみたところ、無事実装することが出来ました。

    この度は、本当にありがとうございました。
    今後もなにかありましたら、ぜひアドバイス頂ければ幸いです。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「特定のタグの投稿数表示」には新たに返信することはできません。