pukiwikiプラグイン/tweetcard

2018-03-03 (土) 13:08:15 (535d)
お名前:

プラグイン概要

Twitter が提供している機能「Twitter Card」に対応するためのプラグインです。
このプラグインを適切に設置していると、当該ページのURLをTwitterで発言したとき単にURLが表示されるのではなく、 以下のように Tweet文字列の下にちょっとした「アイコン&解説」枠が追加表示されます。

上記メカニズムの詳細はこちらを参照のこと。

Twitter Card の仕様上、本プラグインは設置時に「サイト責任者」が相応に加工をすることを前提としています。

インストール方法

  1. 本ページに添付されている下記ファイルをダウンロードし、pukiwiki の pluginフォルダに「tweetcard.inc.php」の名前で保存してください。
  2. tweetcard.inc.php をエディタで開き、以下の部分を編集してください。
    • ファイル内後半に、以下のような記述があるので探し、Twitterアカウントを設定してください:
      <meta name="twitter:site" content="">
      • 例えば「@Junkyard」というアカウントを持っていたとしたら。
        <meta name="twitter:site" content="@Junkyard">~
        と書くことになります。

参考:このプラグインは、拙作の pageinfo プラグインを利用することも可能です。

使い方

  • 事前準備:カードに表示される画像を準備してください。
    最小144pixel x 144pixcel の画像が必要です。
    • 多少いい加減でも、変倍・トリミングはしてくれるようです。
  • 上記画像を、当該ページに添付してください。
  • 上記準備をしたうえで、当該ページに以下のように記載してください。
    #tweetcard(<画像名>[,概要文章])
  • 作成したら、一度公式の Validatorを利用して確認するのがよいでしょう:作成したページのURLを以下のページで入力することで確認できます。
    https://cards-dev.twitter.com/validator

パラメータ

  • 画像名
    • 添付している画像の名称。
      「image.jpg」が添付されていれば「image.jpg」と書けばいい。
    • 例外として「NULL」という記載が許容されています:「そのページにカードを置かない」ことを明示するために使います。
      これは「まとめ」ページ/プラグインから呼び出すことで、そのまとめページ自体には「カードを置かない」ようにするということを意図しています。詳細は後述。
  • 概要文章
    • そのページの説明文を任意入力。
      • 拙作 pageinfo プラグインを併用する場合、省略可能です。
      • pageinfo プラグインよりも、こちらでの記入が優先されます。

補足:2つ以上の tweetcard を書いた場合の挙動

1つのページに2つ以上の tweetcard を置いた場合、最初の1つだけが適用されます。

補足:「まとめ的プラグイン」での挙動

pukiwiki 標準の calender_viewer プラグインのように「複数のページを並べて表示」するプラグインがあります。
このようにしてまとめられた複数のページにそれぞれ tweetcard がある場合、やはり「より前にある」ものが優先されます。

例えば「日記/2018-02-15」と「日記/2018-02-21」とがあり、それぞれに tweetcard を置いたとします。
ここで calender_viewer で2月分・昇順で表示すると「日記/2018-02-15」が先に表示されます。
この「calender_viewerで表示されているリンク」を tweetした場合、2/15のカードが表示されます。

一般に、こういうまとめページではカード表示は期待されないと思われます。
そういうまとめ系プラグインを使う場合、そちらに改造を行ったほうがいいでしょう。
例えば calender_viewer であれば、以下のような感じの追加を行うことで「カードなし」にできます。

	// $limit_page の件数までインクルード
	$tmp = max($limit_base, 0); // Skip minus
	$body .=convert_html('#tweetcard(NULL)'); //←この行を追加
	while ($tmp < $limit_page) {

技術的な話。

既存のkeywordプラグインを参考に、 TwitterCardの仕様に従った meta タグを出力しているだけです。

出力するmetaタグの html文字列を作成し、pukiwiki で準備されている $head_tags[] に追加することで対応しています。

変更履歴

  • 2018.Mar.03 Ver. 0.2
    • Twitter側仕様変更にあわせ、「Creator」に関する記載を削除 and/or 「site」に変更。
    • 「一覧ページ」に対応するため「一番最初のtweetcardのみ有効にする」仕組み追加
      • カードに「NULL」指定を可能に。一覧ページにカードをおきたくないときのため。
    • description でパラメータのサニタイズモレがあった問題修正。

コメント

ご意見などがあれば。


お名前:

▼0.1関連コメント
お名前: