postidかスラッグからタイトルを取ってくるショートコードを作りました

Image [2]

8Beatアドベントカレンダーを毎日更新しています。最初に作ったときはカレンダーの日付がリンクすればいいかと思ったのですが、記事が溜まってくると日付だけで無く、タイトルがあった方が便利だと思い始めました。
ということでpostidかスラッグからタイトルをタイトルを取ってくるショートコードを作ってタイトルが出るようにしてみました。

修正前の8Beatカレンダーはどんなだったか?

アドベントカレンダーをWordPressとショートコードでサクッと作りました(^^)/

で作ったカレンダーはこんな感じでした。

Image

最初はよかったのですが記事が増えてくるとタイトルが出ていないとどんな記事があるか分からなくてもったいないなと思い始めました。

postidかスラッグからタイトルを取ってくるショートコード

ryus_get_post_title という名前のショートコードを作りました。

まずは使い方を紹介します。postidで指定するときは、

のように postid=ポストID と指定します。すると、

[ryus_get_post_title postid=5917]

のように表示されます。この場合分かりやすいようにstyleでバックカラーと枠を付けています。

同じようにスラッグ指定で使うときは、

のように slug=スラッグ を指定します。すると、

[ryus_get_post_title slug=meishiprinter]

このようにタイトルが出てきます。

タイトルを取るだけでなく、リンクもして欲しい場合はオプションで setlink=y とします。
上記の2つのリンクをリンクつきにするには

このように書きます。すると、

[ryus_get_post_title postid=5917 setlink=y]
[ryus_get_post_title slug=meishiprinter setlink=y]

このように記事へのリンクも表示されます。私はtarget=_blank指定が好きなのでこれをデフォルトとしていますが、blankで無くしたい場合

のように targetblank=n と指定すると、

[ryus_get_post_title postid=5917 setlink=y targetblank=n]
[ryus_get_post_title slug=meishiprinter setlink=y targetblank=n]

このように同じページでリンクするようになります。

作ったショートコード ryus_get_post_title はこちら。

ということで作ったショートコードはこれです。

お使いになる場合は使っている子テーマの functions.php に上記のコードをコピーペーストしてください。

8Beatアドベントカレンダーにタイトルを出すようにしてみる

ということでショートコードができあがりましたので8Beatアドベントカレンダーに使ってみます。

ソースの一部だけですがこんな感じで修正しました。

ryus_show_when_published という既に作ってある囲み型ショートコードの中に、今作ったショートコードでタイトルを表示しようと思いました。しかし、

Image [1]

このように(^_^;、ショートコードがそのまま表示されてしまいます。。ショートコードの中でショートコードを表示するにはとググってこちらを参考にさせていただきました。

ショートコードの中のショートコードを実行させるコード

$content = do_shortcode( shortcode_unautop( $content ) ); //ショートコードの中にショート

それを追加した ryus_show_when_published がこちらになります。

このようにして、ちゃんと表示出来るようになりました。

Image [2]

こんな感じです。分かりやすくなった8Beatアドベントカレンダーを是非ご覧ください(^^)/

兎本美佳

ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/
無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー広告
ブログをメールで購読

メールアドレスを記入して購読すれば、更新をメールで受信できます。

259人の購読者に加わりましょう

トップへ戻る