リンクをカード形式で表示するWordPressプラグイン「Pz-LinkCard」。
最新版ver1.7.6を公式プラグインディレクトリで公開しました。
このプラグインについて
WordPressでリンクをブログカードっぽく表示したりするプラグインです。
WordPress4.4でURLを直書きするとインラインフレーム(iframe)でカードっぽく表示される機能が実装されました。(リンク先もWordPress(4.4以上)である必要があったり、レイアウトの変更はスタイルシートをいじる必要があります。)
また、現在、当サイトでも使用している、わいひら(@MrYhira)氏作成のテーマ「Simplicityシリーズ」などでもブログカードの機能があります。
iframeタグを組み込むブックマークレットを使用する方法や、function.phpに組み込む方法など、リンク先をブログカードを表示する方法はいくつかあります。
そういったものを比べて自分の使い方とかに合った方を使うとよいと思います。
当プラグインはショートコードを使用するため面倒ではありますが、その代わりに今後同じような高機能なプラグインが見つかった場合は乗り換えが簡単です。
また、ショートコードが好きなものに変更できるので、今まで使用していたプラグインから乗り換えてくるのも簡単です。
デフォルトのテーマは敢えて奇抜な感じにしていますが、気分やテーマに合わせた外観にすることが出来ます。
ver1.7.5→ver1.7.6変更点など
2017年1月16日に公開したver1.7.5からのマイナーバージョンアップです。
設定画面にメモ追加
外部リンクのタイトルや抜粋文はデーターベースにキャッシュ(一時保存)されており、これを編集することで紹介文として好きな文章をカードに表示することができます。
この他にもショートコードの「開け」と「閉じ」を使ってタイトルや抜粋文を変更する方法があります。実はこの機能は他のプラグインの互換性のために用意したものなのです。
実は「titleパラメータ」でタイトル、「contentパラメータ」で抜粋文をその記事内で変更出来るのですが、この機能の知名度が低い気がしたので設定画面に明記しました。
サムネイルのサイズ指定
今までサムネイル画像は100px×100pxで固定でしたが、ようやっと横幅が指定できるようになりました。
縦幅は「カードの高さ」が最大になります。
大きな画像で目立つカードを作ることもできます。
枠線を選べるように修正
今まで枠線は「黒線/1px」とかリストから選ぶだけでした。
知識が要らないという点では良かったと思いますが自由度が低かったため、枠線の色、枠線の種類、枠線の幅を選べるように修正しました。
枠線を8pxとかにして、線のスタイルを「点線」、色を背景と同じ「白」にするだけでユニークな見た目になります。
「かんたん書式設定」に「縫い目」を追加
「スティッチ(縫い目)」と呼ばれている効果を追加しました。
色のセンスは…無いので、良い色があったらリクエストください!Σ(゚ロ゚)o゙
外部サイトのサムネイル取得、準備中・・・
実は内部的には実装済でテスト済です。
OGPもしくはTwitterカードに指定している画像URLから画像を取得します。
でも、毎回リンク先サイトさんにアクセスしていると負荷がかかってしまうので、100×100のJPEGで保存して、次回からは自サイト内から画像を表示する仕組みです。
この機能を有効にした場合、画像キャッシュを更新する仕組みを作っていないのでどんどんファイルが溜まっていきます。
1リンク(画像)あたり2~3KBなので、通常のレンタルサーバーであれば問題は無いと思います。
好奇心で試してみたい方は、「lib/pz-linkcard-settings.php」の658行目と660行目の「disabled=”disabled”」を消すだけで設定画面で外部リンクのサムネイル画像の「直接取得」が選べるようになります。
<select name="properties[ex-thumbnail]"> <option value="" <?php if($this->options['ex-thumbnail'] == '') echo 'selected="selected"'; ?>><?php _e('None', $this->text_domain); ?></option> <option value="1" <?php if($this->options['ex-thumbnail'] == '1') echo 'selected="selected"'; ?> disabled="disabled"><?php _e('Direct', $this->text_domain); ?></option> <option value="3" <?php if($this->options['ex-thumbnail'] == '3') echo 'selected="selected"'; ?>><?php _e('Use WebAPI', $this->text_domain); ?></option> <option value="13" <?php if($this->options['ex-thumbnail'] == '13') echo 'selected="selected"'; ?> disabled="disabled"><?php _e('Use WebAPI ,If can not direct', $this->text_domain); ?></option> </select>
「直接取得」という表記ですが、外部リンクの場合だけキャッシュの仕組みを通るようにしてあります。
その他
今回は、以上です。
指定したURLのOGP情報やTwitter情報を取得して、JSONで返したり、画像をキャッシュしておいて返却するWebAPIも作れることが分かったのですが、公開するとアクセス負荷に耐える自信が無かったりします。
そもそも画像をリンク先サイトから取得して、100px×100pxのJPEGで保存する仕組みはなかなかグレーです。OGPとかTwitterカードとして公開している画像で、当のfacebook社やTwitter社も画像をキャッシュしているので、大丈夫そうではありますが、厳密には「著作権者から言われたら削除する準備」が伴っていないと、サービスとして提供するのはなかなか難しいところと解釈しています。
では、この辺で。(^-^)o
コメント
始めまして、大変重宝させていただいております。
このたび、1.7.7にバージョンアップしたところ、ワードプレスの動きがとても遅くなってしまいました。
それまでに使っていた1.7.4に戻したら直りましたので、報告させていただきます。
サーバーはwpxクラウドでテーマは賢威7を使用しています。
つばささん、ご利用とコメントありがとうございます。
原因を調査したいと思うのですが、もし可能であればサイトURLなどを教えていただくことは出来ますでしょうか。
Twitterアカウントがあれば、@popo68k もしくは @popozure 宛、DMでもかまいません。
ver1.7.5、ver1.7.6、ver1.7.7でデータベース作成の不具合が見つかりました。
新規インストールした場合にデータベースが作成されないために毎回リンク先の取得が発生して高負荷になっていたと思われます。
この不具合についてはver1.7.8で解消いたしましたのでお試しいただけると幸いです。