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

この記事のURLとタイトルをコピーする

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アドベントカレンダーを是非ご覧ください(^^)/

シェアする

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

フォローする

この記事のURLとタイトルをコピーする
スポンサーリンク
スポンサー広告
トップへ戻る

ゆうそうとについての説明

ゆうそうと とは東京都八王子市を中心として、WordPressによるWEBサイトの作成や、スポットでのIT相談を行ったり、年間契約でのIT顧問をなりわいとして活動しています。

特徴としては30年以上IT業界でプログラムを中心として仕事をしてきたものと、美大出身のデザイナーがワンストップで対応するため、幅広い対応が可能であることです。

IT相談は直接お会いしてのご相談の他、ZOOMによるオンライン相談も可能です。