WordPressでタグのカウント数を取得するショートコード

SunShine!
SunShine!

PHPのお勉強をしよう!
今回は、特定のタグを設定している投稿の数を返してくれるショートコードを作ってみた。

WordPress
タグの数を取得する!

2つのことをお勉強しました。
ひとつは、ショートコードの作り方。
もうひとつは、タグの数の取得。

本当は内部関数みたいななんかなんだろうけど。まだまだ勉強中!

これ書いてる人は、C、C++、C#、VB、HTML、JavaScriptを普通に書けるから。
まったくのシロウトってわけじゃないと思うんだよね。
そーゆー前提でご了承あれ〜

そのタグの投稿数を知りたい!

「WordPress」ってタグがあるじゃろ?
このタグをつけた投稿の数を知りたいんじゃ。

教えて~

きっと数カ月後には数が変わってんだ。
いちいちメンテなんてしてられんよな。
あと、タグクラウド(右のキーワードリスト)では投稿数が表示されてる。
普通に考えれば、こんな数はプログラムで取得できるはずだ。

んでもって、いちいちコードを書いてられんよね。
そもそもPHPを投稿に埋め込む方法も分かってないし。

関数的なものを自作して、ショートコードとして使えばいいんだよ。

水波ちゃん

ショートコードは自作できるってことだったからな。

ひとまずちゃんと使えるかたちに

やればできる!

「転生したらスライムだった件」のタグがついてる投稿は 82 ほどございます。

神之怒

ほらね。
右側にあるキーワードリストでちぇきら!

エラー処理とかはぜんぜん考慮しとらんけどねw
自分で使うだけだから!
・・・とか言って、タグ変えるとえらいことになるよな。。

書いたコード

はじめてPHP書いた。
サンプルコードをあちこちからもらってきて、好きにいじって、ッテゆースタンダードなやりかたな。
プログラムを勉強するならこの方法が手っ取り早い!

小萌先生

コードと、実際に指定する方法と、実行結果。

コード

// タグの数を数えよう
function wnkhsFuncTagCnt($atts) {
    extract(shortcode_atts(array(
        'tagname' => '0',
    ), $atts) );
    $tagnum = get_term_by('name',  $tagname, 'post_tag')->count;
    return $tagnum;
}
add_shortcode('ws_tagcnt', 'wnkhsFuncTagCnt');

上記を function.php に書くんだよ。

基本的には小文字で書くものなんだな。

指定

[ws_tagcnt tagname="感想文"]

実行結果

419

やってること

3話でもお茶してた

ショートコードに指定した値を引数配列で受け取って、タグ名称ベースで数を引き出してる。

ショートコードの引数は配列なんだって。
引数から関数を引き出す必要がある。

いろいろできるget_term_byも、返り値は配列。
プロパティみたいに必要なのだけ引き出せるから、countを指定して、値をもらってる。

締めにreturnね。

魔女の旅々 第3話

んで、自作のショートコードを追加する魔法。
add_shortcodeな。

指定が間違ってると、何も出てこない。

直書きでも動くよ

硝子(Twitterより)

「WordPress」のタグがついてる投稿の数だよ。

108

上は、ショートコードブロックじゃなくて、パラグラフブロックに書いたよ。
テーマのつくりにも依存すると思う。
これができるから、他のブロックにもネストできる。

108

まとめページに使うんだい

これまで投稿してきたアニメのタイトルをまとめようと思って。
せっかくまとめるんだから、関連投稿がどれくらいあるかは調べたい!

まだ下準備をしなきゃならんのだが。

そもそも技術的にできるの?ってところから、流れで、ショートコードを自作することになった。
ちょうどいい機会だよ。
ちょっとずつお勉強さね。

アタックの構え

変数の前にドルを付けるってところもあんまりわかってなかったからな。
サンプルコードをいくつか見て、行の最後にはセミコロンだとか、比較演算子の書き方とか、条件分岐だとかも勉強できた。
こうやって賢くなってくんだよな。
進歩するぞ。

ご意見やご感想などお聞かせください! コメント機能です。

タイトルとURLをコピーしました