ショートコード with Shortcode Exec PHP プラグイン in Wordpress

木谷 公哉(KITANI Kimiya)
kitani@bakkers.gr.jp

Japanese | English

履歴
  • 2011.07.11: 公開
  • 2011.07.13: get_bookmark_linkを追加, get_post_linkを修正(データなしのときの対策とステータスに対応)
  • 2011.07.14: get_media_linkを追加, child_content_view(リンク関連)とget_post_link(パーマネント関連)の問題を修正, get_bookmark_link, get_post_link, child_content_viewにセキュリティ対策を施した(利用されている方は刷新してください)
  • 2011.08.03: get_post_linkを刷新、ページ内リンクへ対応しました。
  • 2012.07.11: list_bookmarks, put_rssを新設
  • 2013.01.15: passed-event-listを新設
はじめに

本ページは、Shortcode Exec PHPプラグインを使った便利なショートコードです。従って本プラグインが必要です。ショートコードを使えるため、ページ内にPHPプログラムコードを入れなくてすむとともに、後からの一括改変も容易になり便利です。

登録方法については、ショートコードの登録方法をご覧下さい

1. child_content_view (2011.07.11)
PHPソース (sha1: 7f6574b62d4e6e481ded3bafdbed776816942799)
  • [child_content_view query="parent ID" orderby="modified" hide_dev='']
    • query(必須):「親ID」を入れて下さい
    • orderby(オプション): 省略すると「modified」が入ります。ここにある$orderbyの値が使えます。
    • hide_dev(オプション): 特定タグ内コンテンツを非表示にできます。複数指定する場合には「,」(1バイトコンマ)で区切って下さい
    • 本ショートコードで指定した親IDのページ内に、本ショートコードを含めないでください。つまり、「parent ID」ページ内にショートコードを入れないということです
    • ステータス対応:「公開」のみリンクをし、それ以外のステータスの場合にはリンクなしのタイトルのみを表示
  • hide_divについて
    • hide_divについては、単純に入力された文字列を検索してヒットしたら、検索結果の文字列の先頭に「style="display:none;" 」を追加するだけです。classやidよりもstypeが優先されるため、そのタグに囲まれた内容は非表示になる単純な仕掛けです。
  • [例]
    • ケース1)class="test" が含まれるタグ内容を消したい(大抵はdivタグでしょう)
      • [child_content_view query="親 ID" div_hide='class="test"']
    • ケース2)WP DS FAQ Plus 1.0.8について、子ページの一覧表を表示したい
      • [child_content_view query="親 ID" div_hide='class="dsfaq_qa_block",class="dsfaq_plus_under_construction"']
2. get_post_link (2011.07.11: 1.0, 2011.08.03: 1.1)
PHPソース (sha1: 56c63a68a2c00354fd0c62baa54ab6448dbde65e)
  • [get_post_link query="post ID" target=""]
    • query(必須):「ID」を入れて下さい
    • target(オプション): aタグのオプションです(<a> href="" target="ここにはいるもの">。リンクをクリックしたら新規ウィンドウ表示したい場合には、_blank を入れておいたらいいでしょう
    • plink(オプション):ページ内リンク用です。hogehoge#exampleにしたい場合「example」を入れます
    • title(オプション):リンクタイトルの上書きです。主にplinkと併用しての利用になると思います
  • 備考
    • 単なるリンクを張るためのショートカット。しかし標準でないんですよねぇ
3. get_bookmark_link (2011.07.13)
PHPソース (sha1: f9a713e8670a7a411e31af07476c5e91c0da0f22)
  • [get_bookmark_link query="bookmark ID"]
    • query(必須):「ID」を入れて下さい
    • その他「target」「description」「表示・非表示」に対応
    • リンク管理において説明文を入れると、リンクにマウスを重ねると説明文が出てきます。非表示にすると、非表示になります。
    • <a target="指定された場合" title="説明文が入力されていた場合" href="url">リンクタイトル</a>
4. get_media_link (2011.07.14)
PHPソース (sha1: 1a1d0e4fa8350939f055586da2eb5793c47b6582)
  • [get_media_link query="attachment ID" format=""]
    • query(必須):「attachment ID」を入れて下さい(メディア管理画面から該当メディアを開くとURLにIDが記載されます
    • format: 指定しなければ、サムネイル画像を探します。あればサムネイルを表示し、オリジナル画像へのリンクをはります。なければオリジナル画像を表示し、リンクもオリジナル画像になります。「download」を入れると、画像へのリンクのみになります。downloadモニタの設定のカスタム出力フォーマットの画像リンクフォーマットで利用するために作りました
    [get_media_link query="id" format=""]
    * もしサムネイルがあるなら
      <a href="original image url">
        <img width="thumbnail width" height="thumbnail height" 
           src="thumbnail image url" alt="image caption"
           title="image description"></a>
    
    * サムネイルがなければ
      <a href="original image url">
        <img src="original image url" alt="image caption"
           title="image description"></a>
    [get_media_link query="id" format="download"]
    オリジナル画像のURL
       	
5. put_rss(2011.07.22)
PHPソース (sha1: 365381109900f636f41042bf5b0599bf4731d230)

特定サイトあるいはWordpress内部の特定カテゴリーに対するRSSアイコン表示をします
  • [put_rss url="a URL or a category in the internal WordPres" img=""]
    • url(必須):RSSのリンク先を指定します。http://かhttps://で始まっていない場合、掲載したWordpress内部へのリンクと判定し、先頭にWordpressのsite_urlが付与されます。(url="information" の場合、「サイトURL/information/feed」となる
    • img: RSSのアイコン画像を指定します。指定されなければ、Mozillaのアイコンが指定されます
6. link_bookmarks (2012.07.11)
PHPソース (sha1: 5d4ff6040793bbfa65a69d79cb044b3b2c02b26e)

  • 指定した「リンク」カテゴリーの一覧表示をします

    • [list_bookmarks query="category ID" options=""]
      • query: 「カテゴリーID」入れて下さい。指定しなければ全リンクが表示されます。
      • options: デフォルトでは「show_description=0&orderby=updated&title_li=&categorize=0」が指定されており、ulとliタグの組み合わせで表示されます。なお、オプションにはタグを含めることができない仕様制限としています
    7. passed-event-list (2013.01.15)
    PHPソース (sha1: 4d08916e258c1f19ed27649a2233ca1c47efb313)

  • The Event Calendarで投稿されたイベントのうち、過去情報の一覧を表示します。現状は「ul」タグで新しいもの順で表示されます。

    • [passed-event-list]
    Appendix 1: ショートコードの登録方法
    Shortcode Exec PHPプラグインをインストールすると、Wordpressの左サイドメニュー「ツール」に「Shortcode Exec PHP」設定項目ができます。ここに追加することになります。
    1. ショートコード名を入れて、そして行が書かれている大きなテキストボックスにPHPのコードを書き込みます。そして「Add」ボタンを押します。
      ※phpであることを示すコードは不要です
    2. すると下図のようになっているでしょう。「Test」ボタンで正しく動作するかチェックします
    3. 下記のようにErrorが出ずに結果が返ってきたら使えます。