リンクをカード形式で表示するWordPressプラグイン「Pz-LinkCard」。
最新版ver1.8.1を公式プラグインディレクトリで公開しました。
ver1.8.0→ver1.8.1修正点
2017年2月13日に公開したver1.8.0からのバージョンアップです。
WordPress 4.8での動作確認
最新のWordPressでの動作を確認しました。
かんたん書式設定に「シンプル」を追加
選ぶだけで外観を大雑把に設定できる「かんたん書式設定」に「シンプル」を追加しました。
はてなブログカード風のシンプルな見た目になります。
外部サイトのサムネイルの直接取得に対応
設定画面の「外部リンク」の「サムネイル」の項目に「直接取得」と「直接取得できない場合、WebAPIを利用する」を追加しました。
リンク先サイトでOGP(facebook向けの概要)やTwitterカードの設定をしている場合、それらの画像を取得してきます。
画像は縮小されてプラグインのフォルダに保存されます。削除や変更をする機能は無いため、リンク先の画像が修正されても反映されません。
プラグインをバージョンアップするとプラグインのフォルダは全て置き換わるため、バージョンアップ時に画像のキャッシュは削除されることになります。
まだ「試用段階」と思っていただけると幸いです。
その他
お気づきの点などありましたら、コメント欄や、ツイッターアカウント「ぽぽろん@ぽぽづれ。(@popo68k)」もしくは「ぽぽづれ。(@popozure)」までご報告ください。
では、この辺で。(^-^)o
コメント
いつもお世話になっております。
最新版2.0.8を利用させていただいておりますが、
直接取得のOGP画像がうまく取得できていません。
おそらくMETAタグのog:imageに上手くマッチしていない気がします。
大変お手数ですが、ご確認いただけますでしょうか?
yossyさん、ご利用&コメントありがとうございます。
今確認したところ取得できるサイトがあることを確認したため、まったく取得できない状態では無いようです。
OGP情報が取得できていないリンク先サイトのURLを教えていただければ調査いたします。
ご確認ありがとうございます!
現状全てのサイトでOGP取得できていないのですが、
もしかしてWebサーバーやPHPの設定も関係してくるのでしょうか?
OGP情報で取得できていないのは画像だけということで、タイトルと抜粋文は取得できていますでしょうか。
サムネイル画像取得にはPHPのfile_get_contents()関数を使用しています。
file_get_contents()関数はfopen_wrappersが有効になっていないとでURLが指定できないために画像の取得ができません。
fopen_wrappers設定が無効になっていないか確認してみてください。
ぽぽろん様
お返事ありがとうございます。Twitterはやってないので、Gyazoに上げてみました。
https://gyazo.com/
テストのため、こちらのブログURLをお借りしています。
(※ローカル環境でテストしています)
見れますでしょうか?
管理画面のこのページでのみ、文字化けをしてしまうのです。
本文や設定画面は文字化けしていません。
ありがとうございます。画像を確認しました。(念のためURLは伏せておきました。)
予想としてはDBの文字コードの問題のような気がしますので、phpMyAdminなどで、pz_linkcardテーブルの文字コードが「utf8」になっているか確認していただけると助かります。
こちらでも調べてみます。
その他、動作に問題が無いようならこのままお使いになっていてください。
Pz-LinkCardではキャッシュに使用するDBテーブルを作成するときに、文字コードとして「UTF8を指定する前提」で、WordPressのデフォルトの文字セットを使用するようになっています。
WordPressもしくはDBの文字セットがUTF8以外なのでは無いかと予想されますがいかがでしょうか。
https://popozure.info/20150725/7771
このトラブルはローカル環境だからこそ起こりやすい環境設定との兼ね合いのような気がします。
また状況が分かりましたら調査します。
ぽぽろん様
お忙しい中、一緒に見ていただいてありがとうございます。
DBの文字セット、ということで見てみました。
InstantWPというソフトを使ってるのですが、MyAdminを見てみたところ、文字コードがutf8mb4_unicode_ci となっていました。
これが原因なんでしょうか。
DBの確認ありがとうございます。DBの標準の文字セット(照合順序)が「utf8mb4_unicode_ci」であれば問題無いはずですので、そこは大丈夫です。
「wp_pz_linkcard」の「構造」を見てみていただいて、そちらの照合順序も「utf8mb4」から始まるものになっておりますでしょうか。
何度も確認していただいてすいません。
すみません、追記です。
DBのpz_linkcardテーブルの文字コードはutf_general_ciになっており、InstantWP自体の一般設定の文字コードはutf8mb4_unicode_ci でした。
pz_linkcardテーブルの文字セットは「utf8」もしくは「utf8mb4」になっていないと想定通りの動きがされません。変更が出来れば「utf8mb4_unicode_ci」に変更してみることはできますか。
すでに保存されたものは別の文字コードで保存されていると思われますので、Pzカード管理画面からいったん削除して再取得してみてください。
ありがとうございます。
InstantWPのほうでpz_linkcardテーブルを「utf8mb4_unicode_ci」に変更し、すでにテストしている文章は削除して再度新規投稿をしてみたのですが、やはり文字化けしてしまっています。
InstantWPではなく、XAMPPかMAMPでもう一度やってみようと思います。
こちらで再現する環境が無く、適切な助言ができずすいません。
また何かありましたらおしらせください。
いえ、とんでもないです。
MAMPを使ってWPをインストールし、ブログカードのテストをしてみましたら、文字化けせず表示することができました!
やはりおっしゃる通り、InstantWPの文字コード的なものが原因だったのかもしれません。
お手数おかけして申し訳ございませんでした。でもとてもありがたかったです。ぜひ使わせていただきたいと思います。
報告ありがとうございます。InstantWPなどのローカル環境には興味がありますのでその内対応したりもするかも知れません。
また何か気づいた点などありましたらお気軽にどうぞよろしくお願いします。
こちらでもInstantWPをインストールしてみて原因がだいたい分かりました。
【原因】
管理画面では文字数を区切って表示するときにhtmlentitiesという関数を使用しているのですが、この関数がutf-8で上手く動作してくれないのが原因でした。
明示的にutf-8と指定すると動作するのですが似た関数のhtmlspecialcharsに変更したところ正しい表示になりました。
【対応】
InstantWPでも正しい表示になるように関数の差し替えを行いました。次の公開バージョンで修正されます。
【備考】
DBそのものには正しい値が入っており、管理画面での表示の問題だけでした。このため表示は化けていても使用していただいていても問題ありません。
【詳細】
こちらの記事で説明しました。
https://popozure.info/20170705/11263
初めまして、こんにちは。こちらのプラグインを使わせていただこうとインストールしました。プラグインのページからPz-LinkCardの管理 に行くと、タイトルや抜粋文が文字化けしてしまっています。「編集」で見てみるとちゃんと日本語になってるんですが…。
解決策などありましたら、教えていただけないでしょうか?
綾さん、コメントありがとうございます。
プラグインの管理画面などで表示される見出しなどは英語で作成されていて、翻訳ファイルを使用して日本語として表示される仕組みとなっていますが、言語設定などとかみあっていないのかもしれません。
どんな感じで化けているのか実際の画面を見てみたいので、もしもTwitterアカウントがあれば、 @popo68k もしくは @popozure あてにDM(ダイレクトメッセージ)で画面写真などを送っていただけると助かります。
現在のところ、pz_linkcardのDBテーブルを作成するときに、強制的に「utf8」で作成せず、WordPressのDB設定の文字セットで作成するのは仕様となります。
もしもPHPを直接編集することが出来るのであれば強制的にutf8でテーブルを作成するようにする変更箇所をお教えすることができると思います。