#プラグインでやれ2013年7月21日functions.phpWordPress先日「管理画面上からPHPを自由に動かせるのは危ないよ」という記事を書きましたが、「条件分岐をさせたいから記事内でPHPを動かしたい。」という声もちらほら見られたとか見られていないとか。そこで記事内で条件分岐ができるショートコードができそうなので書いてみました。ちなみに条件分岐をしたくてExec-PHPとか入れていた方向けなので、PHPを使える方を対象とした中~上級者向けの記事です。コードと概要、使い方なんでもかんでも好きな条件で変更できるのではなく、以下の条件分岐に対応しています。3.4以上)公開開始日時と終了日時ランダム表示(ABテスト用?)下のようにリンクをランダムに切り替えたりできます。分岐後は他のショートコードも使えるんですよ。binghttp://www.bing.com/ショートコードを実装する以下のコードをfunctions.phpに記述してください。$arg){プラグインでやれって感じの長さですね。使い方まずは簡単な使い方から。表示PHPのdateフォーマットでstart属性を指定します。start="2013/8/1"]2013年8月1日以降に表示されますよー[else]2013年8月1日まではこっちが表示されますよー[/if]○年○月○日から×年×月×日まで表示start属性とend属性を指定します。end="2013/8/15"]2013年8月1日以降に表示されますが、2013年8月15日以降は見えなくなりますよー[/if]時間も指定もちろん、何時何分以降まで指定できます。2013年8月1日12:00から残暑セールスタート!!2013年8月15日10:00に終了!!的な。9:59:59"]2013年8月1日12:00から残暑セールスタート!!2013年8月15日10:00に終了!!的な。[/if]ランダムに表示させるランダムに表示させるにはrand属性を指定します。1/2の確率で分岐、値を入れるとP%の確率で表示されます。値がなかったら1/2っす。rand=""]値がなかったら1/2っす。rand="10"]値(P)は%に。Codexの条件分岐で分岐ができます。is_feed]RSSフィードで表示[/if]分岐を否定するWordPressの条件文は関数の頭に”deny_”をつけると否定できます。deny_is_search]検索結果じゃなければ表示[/if]複雑な条件分岐elseに条件分岐を付与したりといった複雑な条件分岐も可能です。日付は指定せずに何時~何時まで表示という指定もできます。年(start_year/end_year)月(start_month/end_month)日(start_date/end_date)時間(start_time/end_time)これらの属性に数値を指定します。end_timeは省略されると59分、59秒として扱われます。end_timeは省略されると59分、59秒として扱われます。条件分岐内に書かれたショートコードは実行されますが、終了タグなどの仕様の関係でこの記事のショートコードのifは使えません。{if}~{/if}というタグで記述すると実行させることができます。end_time="11"}2013/8/4~2013/8/10の午前{else}2013/8/4~2013/8/10の午後{/if}[/if]ちなみに条件分岐の中で使える条件分岐は1階層まで。下みたいに入れ子を深くすると動作がおかしくなっちゃうので気をつけて。end_time="10:00"}2013/7/21~2013/7/27の午前{/if}{/if}果たして需要はあるのかと記事内での条件分岐に需要があるか謎ですが、ショートコードでこんなこともできますよ!ってことで。ランダム分岐あたりはABテストで使えるなぁと思います(そこそこの母集団がないと偏りますが)。is_amp_endpoint()NginxのWordPressでAMPったPHPで文字列を置換する時は正規表現に頼らないWordPressの疑問。無効化設定が無視され出力されていた件WordPressの管理画面のカスタム投稿タイプのアイコンを変更するぼくもWordPressのユーザー権限をしっかり考えないとな...WordPressでフルサイズの画像の大きさを自動で調整してくれるプラグイン【Imsanity】WordPressでJSとかに自動付与される?ver=xを消してみる関連この記事につけられたタグfunctions.phpWordPressHOME気になんのコレNATOベルトの交換手順まとめ。(新しいウィンドウで開きます)ツイート何か一言あれば!!質問とかツッコミとかお気軽にコメントしてください。