「ある記事が公開されたら囲まれた部分を表示する」ショートコードを作りました

Image

最近は以前書いた記事に補足的に「こんな機能も付けました~」とか「ここが不具合だったのでなおしました~」というような記事を書くことがあります。

そんなときには以前書いた記事も修正して、「補足:このページでこの辺なおしました」とか書きたいのです。しかし、基本的にblogは前日までに予約投稿をしてるのでそれをしちゃうと、予約投稿が完了して公開されるまではリンクをクリックしてもらっても見えない!ということになっちゃいます。

かといって、公開されたら前の記事に補足を書こうとしても忘れちゃいます(^_^;

というわけで囲み型ショートコードを作って「ある記事が公開されていたら表示する」という機能を追加してみました(^^)/

どのように動くショートコードなのか?

例えば 

8月10日に ○○○○という機能を持つショートコードを作ったよ! という記事を書いていたとして、

今日(例えば9月29日) ○○○○という機能のショートコードにこんな機能を追加しました! という記事を書いて、予約投稿して公開予定日は10月4日だったりした場合

です。今日(9月29日)のうちに8月10日の記事に

のように記述して、

この機能にさらに機能を追加しました。
詳しくはこちらをご覧下さい→○○○○という機能のショートコードにこんな機能を追加しました!

こんな感じに表示したいです。けれども予約投稿なのでこのまま書いてしまうとすぐに見ていただいた人にはリンク先が見えないことになります。

ショートコード ryus_show_when_published

そこで、ある記事が「公開」されていれば表示するという囲み型ショートコードを作りました。

ryus_show_when_published

使い方としては、表示したいhtmlを囲みます。

スラッグ指定
[ryus_show_when_published slug=”この記事が公開されたら表示する、の記事のスラッグ”]ここに表示したいhtmlや文章など[/ryus_show_when_published]

ID指定
[ryus_show_when_published postid=”この記事が公開されたら表示する、の記事のID”]ここに表示したいhtmlや文章など[/ryus_show_when_published]

のどちらかで指定します。上記の場合でしたら、

こんな感じで指定しておきます。これで今(例えば9月30日)には表示されていませんが、予約投稿日の10月4日になれば囲んだ部分が表示されるようになります。

この機能は予約投稿だけでなく「非公開」「下書き」「パスワード保護」のどの状態の時でも表示されませんので予約投稿以外にも色々使い方がありそうです。

ryus_show_when_published の中身

この機能を使うには子テーマのfunctions.phpに以下のコードを貼り付けてください。

ちょっとだけコードを解説すると、

のところでpostidとスラッグ(slug)を受け取っています。どちらか片方の指定でいいので初期値は空白にしてあります。

スラッグで指定されたときにスラッグからpostidを取得します。

url_to_postid ←codexによるリファレンス

postidがあって(指定されているかスラッグから取得できているか)、指定されたpostidで記事が取得できたら、ステータスをチェックして公開(publish)だったら、囲まれているcontent(htmlや文章など)を返します

それ以外の時は、

で空白を返すので何も表示されません。

こんなかんじです(^^)/。

こちらにその部分だけを取り出したphpを置きます。お使いの子テーマの、functions.phpに追加するとこの機能が使えるようになります。

ryus_show_when_published

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

シェアする

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

フォローする

スポンサーリンク
スポンサー広告
トップへ戻る