Category Archives: WordPress

EZ zenback バージョン1.5.2 リリース

「EZ zenback バージョン1.5.2」をリリースした。 最新の「EZ zenback」をダウンロードする このバージョンから新しい書式のzenbackタグをサポートした。 「EZ zenback」は任意のコード(JavaScript等)をWordPressが生成するHTMLソースに追加して書き出す機能があるが、ユーザーがネットで公開されているコードを盲目的に入力し、そのコードが悪意のあるものであれば最悪の結果を招く恐れがあるため、簡単なセキュリティチェックを行っている。 そのチェックが機能が新しいzenbackタグを拒絶してしまっていた。

Posted in PHP, WordPress, 自作アプリ | Tagged , , | Leave a comment

Disqus Comment System for EZ zenback Ver. 2.74 modified 1.0 リリース

「Disqus Comment System for EZ zenback Ver. 2.74 modified 1.0」を公開した。 最新の「Disqus Comment System for EZ zenback」をダウンロード 「Disqus Comment System for EZ zenback Ver. 2.74 modified 1.0」は、「EZ zenback」との併用が前提となっているので、これ単体では使用しないこと。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | Leave a comment

Disqus Comment System for EZ zenback Ver. 2.73 modified 1.1 リリース

「Disqus Comment System for EZ zenback Ver. 2.73 modified 1.1」を公開した。 最新の「Disqus Comment System for EZ zenback」をダウンロード 実は、前日にリリースした「Disqus Comment System for EZ zenback Ver. 2.73 modified 1.0」の公開作業でミスをしてしまい、「Disqus Comment System 2.73」そのものをアップロードしていまっていたようだ。 ご迷惑をお掛けしました。 「Disqus Comment System for EZ zenback Ver. 2.73 modified 1.1」は、「EZ zenback」との併用が前提となっているので、これ単体では使用しないこと。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | Leave a comment

Plugin Directoryの統計情報を記事で表示出来るようにするプラグイン「Plugin Directory Stats」

「WordPress.ORG」の「Plugin Directory」から統計情報を取得し、投稿、固定ページ、ウェイジェットの中で表示できるようにするプラグイン「Plugin Directory Stats」をリリースした。 最新の「Plugin Directory Stats」をダウンロード 「Plugin Directory Stats」は、「Plugin Directory」からダウンロード数などの統計情報を取得し、ショートコードを使ってそれらを投稿、固定ページ、ウェイジェットの中で表示させることができる。 統計情報の取得にAPIと独自の仕組みを利用しているが、どちらもプラグインディレクトリのページをリクエストし、統計情報を取得する仕組みになっている。 つまりは、訪問者には見えない部分で、自サイトのページ以外にプラグインディレクトリのページを閲覧することになるため、サイトのパフォーマンスに少なからず影響を与える。 度が過ぎればWordPress.COMに対しても影響は皆無ではない。 そのため、原則として、プラグインの作者が、自身のプラグインの統計情報を自分のサイトで表示させる用途に向くプラグインである。 ただし、大量のプラグインの統計情報を表示させるような用途には向かない。 プラグインの利用者のサイト、WordPress.COMへの負荷を軽減するため、取得した情報は一定時間(デフォルトで3時間)キャッシュし、頻繁にページのリクエストを発生させない仕様になっている。 そのため表示される統計情報はリアルタイムの情報ではない。 キャッシュする時間を短くすることも出来るが、そもそも、リアルタイム性が重要な情報ではないので、可能な限り長めに設定して欲しい。 なお、統計情報は、プラグイン毎、作者者毎に独立してキャッシュされる仕組みであり、全情報が同時に更新されるとは限らない。 キャッシュの有効時間を過ぎた場合以外にもキャッシュが更新のタイミングがあり、UTCの午前0時(日本時間 午前9時)を過ぎ、日付が変わった後に、このプラグインのショートコードが記述されたページに訪問があった場合にもキャッシュが更新される。 以下は、このプラグインを使って統計情報の表示させた場合の例である。 ・特定のプラグインの統計情報 ・作者毎のプラグインリスト

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , | Leave a comment

トラックバックスパム対策に適したWordPressプラグイン

先日、突然、トラックバックスパムが急増して、削除しても直ぐにトラックバックスパムを受信してしまうような状況に陥ってしまった。 コメントは「DISQUS」を使用しているので、「DISQUS」側でコメントスパム対策を行なっているが、トラックバック(ピンバック)に関しては対策を行なっていなかった事が原因だが、やはり事前に対策を講じておくべきだったと反省している。 コメントスパムやトラックバックスパム対策と言えば「Akismet」が定番であるが、対象がトラックバックに絞られるため、もっとシンプルなトラックバックスパムに特化したプラグインの方が好ましい。 また、私のケースでは、記事へのリンクが含まれないサイトからのトラックバックを禁止する機能があれば十分だろうと思われたので、そのようなプラグインを探して見ると「Simple Trackback Validation」というプラグインが見つかった。 ところが、残念なことに「Simple Trackback Validation」は、長らくアップデートされていないので、出来れば使用は避けたい。 更に調べると、派生として「Simple Trackback Validation with Topsy Blocker」というプラグインが存在することが分かったので、こちらを使うことにした。 「Simple Trackback Validation with Topsy Blocker」は、「Simple Trackback Validation」の基本機能に加えて、「topsy.com blocker」という外部サービスを利用できるようになっている。 実際のところ、基本機能に違いがあるかは分からないが、単にリリースが新しいという理由で「Simple Trackback Validation with Topsy Blocker」を選んだ。 「Simple Trackback Validation with Topsy Blocker」では、トラックバックスパムの受信を拒否する以外に、承認待ちとして保存したり、スパムとしてマークして保存することも出来る。 スパム判定に「topsy.com blocker」という外部サービスを利用している点が、このプラグインの特徴であるが、これに加えて、次のような条件でもスパム判定を行う。 まず、IPアドレスをチェックする機能があり、トラックバックの送信元IPアドレスと、トラックバック元のサイトのIPアドレスを比較し、一致しなければスパムと判定される。 つまり、ツールなどを使って、実際のサイト以外からトラックバックが送信されたケースがこれに該当する。 また、トラックバック元のサイトに投稿へのリンクが含まれなければ、スパムと判定する。 これらの判定条件は、設定画面でON/OFFでき、かつ細かな設定が出来るようになっている。 「Simple Trackback Validation with Topsy Blocker」は、シンプルなプラグインではあるが、トラックバックスパムに対抗するための機能は十分に備えており、実際、これでトラックバックスパムを完全に拒否することが出来た。

Posted in WordPress, ネット・PC | Tagged , , | Leave a comment

Plugin Directoryから削除されたプラグインを検知する

このサイトで使用しているプラグインは、未公開の自作品を除けば全て「WordPress.ORG」の「Plugin Directory」に登録されたものを使っている。 「Plugin Directory」に登録されたものであれば、ダッシュボードで更新通知を受信できるためアップデートが楽というメリットがあるが、実はもう1つの理由がある。 それは、「Plugin Directory」に登録されたものなら比較的安全だろうという考えに基づいている。 WordPress用のテーマやプラグインは、悪意を持って作ることも簡単である。 実際、そのようなテーマやプラグインは少なくない。 そのため、導入前のチェックが重要になる。 チェックを行うツールとして「Theme-Check」と「Plugin-Check」をインストールする手もあるが、これもメッセージの内容が理解できてこそ意味のあるツールなので、敷居は低いとは言えない。 個人的には「Plugin Directory」のプラグインが比較的安全だろうとは思っているが、登録されているプラグイン全てが安全かと言われればそうではなく、そもそも「Plugin Directory」への登録自体が簡単で、ソースコードを提出しなくとも許可される。 実際、登録申請フォーム「Add Your Plugin」を見ると、「Plugin URL」の項目が「required(必須)」になっていない。 過去に「Plugin Directory」でセキュリティ上の問題が発生したことがあり、そのタイミング登録申請したプラグインに対してソースコードの提出を求められたので、最近は面倒を避けるために、最初からソースコードも提出しているおり、現在、すべての申請に対してソースコードの提出が求められていないかは分からない。 しかし、現在もノーチェックで登録が許可されている可能性も高い。 そもそも、登録申請から許可されるまでの時間を考えると、ソースコードを提出した場合でも、殆どノーチェックではないかと思われる。 つまり、すべての登録プラグインが、ガイドライン「Detailed Plugin Guidelines」を守っているとは限らず、「Free Themes Directory」に比べると甘いと言える。 とは言え、「Plugin Directory」はユーザー自体が多いので、万が一、悪意のあるプラグインが登録された場合でも、ある程度の期間公開されれば、ユーザーによって問題が報告され「Plugin Directory」から削除される。 公開からある程度時間の経過しているプラグインは、より安全であるとは言えるだろう。 ただし、公開間もないプラグインが全て危険という意味ではないので誤解のないように。 また「Plugin Directory」から削除される理由としては、プラグインの作者の都合であるケースもあるため、削除されたからと言って危険なプラグインだったとは限らない。 私は、以前から「Plugin Directory」に一度登録された後に削除されたプラグインを簡単に調べる方法が欲しいと思っていた。 削除されたプラグインは問題があった可能性もあるので、それを知りたいと言う理由もあるが、それに加えて運用上の理由が大きい。 私の場合は、ダッシュボードでの更新通知に完全に頼っているので、更新通知によってプラグインをアップデートしている。 更新通知がない場合は、それが単にアップデートが無いだけなのか、「Plugin Directory」から削除されたためなのか知る手段がないので、単にアップデートがないと考えるしかなくなる。 その結果、作者の意思で「Plugin Directory」から登録を削除し、「Plugin Directory」以外の場所で公開されている場合でも、アップデートがないと思って、古いバージョンを使い続けることになるかもしれないからだ。 この問題に対処する1つの方法として、先日「No Longer in Directory」というプラグインを見つけた。 このプラグインは、「Plugin Directory」から削除されたプラグインのリストを保持している。 リストは、バージョン1.0でも8,000行以上もある。 ダッシュボードの「プラグイン」->「No Longer in Directory」にアクセスすると、インストールされたプラグインの中にリストにマッチするものないか調べ、マッチするものがあれば、更にそのプラグインのページが「Plugin Directory」に存在するかHTTP requestによって調べ、ページがなければ、今、現在も「Plugin Directory」から削除されたままであると判断し、警告を表示する仕様になっている。 この方法であれば、リストが間違っていたり、不幸な偶然でリスト致してしまわない限り「Plugin Directory」以外からダウンロードしたプラグインが誤検知されることはない。 大前提としてリストが正確で、今後も更新され続けることが重要であるが、この問題の解決の1つの手段にはなりそうだ。 あまりダウンロードされないと、作者も更新しなくなる可能性があるので、再度、「No Longer in Directory」を宣伝しておく。

Posted in WordPress, ネット・PC | Tagged , | Leave a comment

POST2PDF Converter バージョン0.4 リリース

WordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン「POST2PDF Converter バージョン0.4」をリリースした。 最新の「POST2PDF Converter」をダウンロード バージョン0.4では、作成されたPDFをキャッシュする機能を追加した。 過去のバージョンでは、ダウンロードリンクがクリックされる度に、PDFへの変換処理を行う仕様であったが、新しく追加されたキャッシュを有効にすることで、一度変換が行われた投稿に関しては変換を行わず、キャッシュからダウンロードされるようになり、サーバーの負荷が軽減されるようになった。 キャッシュの保持期間の設定は出来ず、無制限であるが、記事の内容が変更された場合は、更新後の最初ダウンロードのタイミングで個別にキャッシュは更新され、変更内容がPDFに反映される。 また、設定のリセットを含め、PDFの内容に影響を与える設定変更を行った場合や、キャッシュを無効にした場合には、すべてのキャッシュファイルがクリアされるようになっている。 記事とキャッシュの内容の不一致が起こらないように配慮しており、手動でキャッシュをクリアすることも出来るが、これは殆ど使う必要はないだろう。 記事とキャッシュの不一致が起こると考えられるケースは、直接、データベース上の記事データを変更した場合で、これをダッシュボード上から実行できるプラグインもあるが、通常の仕様の範囲では、まず、記事とキャッシュの不一致は発生しないと考えて良いだろう。 なお、ダッシュボードからプラグインの自動更新を行った場合も、キャッシュはクリアされてしまうため、これを避けたいならば、アップデートの際、手動で上書きインストールを行えば良い。 キャッシュは、「プラグインディレクトリ/post2pdf-converter/pdfs」に格納されている。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | 5 Comments

PDFファイルを生成するためのPHPライブラリ「TCPDF」

昨年末にWordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン、「POST2PDF Converter」をリリースしたところ、予想外に反響があった。 そもそも、同様の機能を持つプラグインは既に複数存在しており、「POST2PDF Converter」は、特に目新しいプラグインではないのであるが・・・。 投稿や固定ページをPDFへ変換するプラグインのうち、人気のものは外部のオンラインサービスを利用してPDFファイルの変換している。 例えば、「Print Friendly and PDF Button」は、「printfriendly」と言うサービスを利用してPDFに変換している。 また、「PDF24 Article To PDF」は、「PDF24」というサービスを利用しており、「PDF & Print Button Joliprint」は、「joliprint」を利用している。 これらのサービスは、PDF変換以外の機能も提供しているケースが多く、概ね高機能である。 対して「POST2PDF Converter」は、「TCPDF」というオープンソースのPHPライブラリを利用しており、外部サービスに依存せず、サーバー上で変換を行う。 もっとも、「TCPDF」を利用したプラグインは、以前から他にも存在しており、この点でも「POST2PDF Converter」が特に目新しいものでは無いのであるが・・・。 どちらかと言えば、「TCPDF」を利用したプラグインは、WordPressのプラグインの中ではマイナーな部類になるが、それは「TCPDF」が機能的に劣ると言うことではなく、UTF-8のWordPressコンテンツとも基本的に相性が良い。 「TCPDF」は、イタリア人のNicola Asuni氏(Tecnick.com S.r.l)によって開発されたPHPライブラリであり、「FPDF」の派生である。 このライブラリを使用するには、PHP 5が必要であるが、PHP 4用のパッケージも用意されている。 PHPのライブラリであるが故に、WordPressとの相性も良く、簡単な記述でDBからHTML形式のコンテンツ取得し、それを「TCPDF」に渡してPDF形式に変換することが出来る。 また、グラフやQRコードなどのバーコードの描画も可能であり、工夫次第で、かなり凝ったPDFを生成できるようになっている。 APIは単純とは言えないが、僅かなコードの追加でHTMLをPDFに変換するための処理を記述できる。 WordPressのようにコンテンツをHTML形式で取得し易いシステムであれば、導入に苦はないはずである。 PDFへの変換処理に関しては「TCPDF Examples」でサンプルが用意されているので、これを真似て書くと手っ取り早いだろう。 少し版は古いが「MONZEN.ORG」で日本語ドキュメントが用意されているので、これも参考になる。 TCPDFについて TCPDF マニュアル 日本語版 ディレクトリパス、フォント、フォントサイズと言った設定パラメーターは「/config/tcpdf_config.php」で定数として設定する形になっており、必要に応じてこれを編集する。 「/config/lang」ディレクトリには、各言語用の設定ファイルが格納されている。 バージョン5.9.145からは日本語用の設定ファイル「jpn.php」が同行されているので、これを使えば良いが、設定ファイルの記述自体は単純であり、足りない言語の設定ファイルも簡単に自作することが出来る。 $l['a_meta_charset'] で文字コード、$l['a_meta_dir']で記述方向(左から右ならltr、右から左ならrtl)、$l['a_meta_language']で言語コード定義する。 そして、$l['w_page']では、「page」の訳を定義する。 下記は、UTF-8、日本語の場合の記述例である。 // Japanese global $l; $l = Array(); // PAGE META DESCRIPTORS ————————————– $l['a_meta_charset'] = 'UTF-8'; $l['a_meta_dir'] = 'ltr'; $l['a_meta_language'] = 'ja'; // TRANSLATIONS ————————————– $l['w_page'] = 'ページ'; //============================================================+ // END OF FILE //============================================================+ この設定ファイルは、最初にrequire_once()で読みこめば良い。 更にもう1つ、言語によって変更すべき要素があり、それがフォントである。 フォントは、setHeaderFont、setFooterFont、SetFont、SetDefaultMonospacedFontメソッドで指定する。 なお、SetDefaultMonospacedFontでは、プロポーショナルフォントを指定することは出来ず、等幅フォントを指定する必要がある。 標準の日本語フォントは、 cid0jp(ArialUnicodeMS) kozgopromedium(Kozuka Gothic Pro) kozminproregular(Kozuka Mincho Pro) の3つであるが、残念ながら文字化け等が発生するケースがある。 場合によっては、オープンソースのTrueType日本語フォントなどをTCPDF用に変換して、それを使った方が良いかもしれない。 バージョン5.9.123からは、TrueTypeフォントをTCPDF用に変換するためのメソッド、addTTFfont()が追加されたので、フォントの変換の際にはこれを利用する。 また、5.9.122以前に同梱されていたツールを使っても良い。 なお、このサイトでもオープンソースのIPAフォントと梅フォントをTCPDF用に変換したものを公開している。 TCPDFは、HTMLタグを解釈し、タグに従ってレイアウトを行った上でPDFに変換するが、全てのタグや属性を正しく解釈できる訳ではない。 また、通常ウェブサイトは、別途CSSを読み込んでレイアウトを行なっているが、このCSSがPDFに反映される訳でもない。(あくまでHTMLのみ解釈する。) そのため、生成したPDFは、実際のウェブサイトとレイアウトが異なってしまう場合が多い。 必要であれば、HTMLにstyle属性を付加するなどして、微調整する必要がある。 PDFに変換される事を意識してHTMLを書くのも良いし、HTMLをそのままTCPDFに渡すのではなく、その前の段階で、HTMLをTCPDFに最適化させる処理を入れても良い。 拘れば、ここが最も面倒な作業になるだろう。

Posted in PHP, WordPress, ネット・PC | Tagged , , | Leave a comment

Disqus Comment System for EZ zenback Ver. 2.70 modified 2.0 リリース

「Disqus Comment System for EZ zenback Ver. 2.70 modified 2.0」を公開した。 最新の「Disqus Comment System for EZ zenback」をダウンロード このバージョンは、リリース予定の「EZ zenback」(バージョン1.5.2を予定)に対応したバージョンであり、「EZ zenback」のユーザーは、事前にこのバージョンにアップデートして欲しい。 勿論、現行の「EZ zenback バージョン1.5」および過去のリリースも対応している。 「Disqus Comment System for EZ zenback Ver. 2.70 modified 2.0」は、「EZ zenback」との併用が前提となっているので、これ単体では使用しないこと。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | 1 Comment

POST2PDF Converter バージョン0.3 リリース

WordPressの投稿や固定ページをPDF形式でダウンロード出来るようにするプラグイン「POST2PDF Converter バージョン0.3」をリリースした。 最新の「POST2PDF Converter」をダウンロード 「POST2PDF Converter」は、一度、変換されたPDFを保存せず、ダウンロードリンクがクリックされる度に、新たにPDFへの変換を行う方式を採用しており、この方法は、記事を変更した場合にも、リアルタイムでPDFにも反映されるというメリットがあるが、サーバーに負荷を掛けると言うデメリットもある。 このあたりは次のバージョンでの改善を考えているが、バージョン0.3では、この問題を解決する1つの手段として設定画面上で管理者が手動で記事をPDFに変換し、ダウンロード出来るようにした。 設定画面で作成したPDFファイルに、記事に任意の場所でリンクを貼れば、サーバーに負荷を掛ける事なく、記事をPDF形式でダウンロード出来るようになる。 また、「POST2PDF Converter」がPDF作成のために利用してる「TCPDF」は、PC用のTrueTypeフォントを直接フォントとして使用することが出来ず、予め変換を行う必要があるが、バージョン0.3では、この変換作業を設定画面上で行うこと出来るようになった。 変換できるフォントは、TrueTypeフォント、OpenTypeフォント、Type1フォントなどである。 なお、変換テストは、TrueTypeフォントでしか行なっていない。 TCPDF用フォントへの変換は、プログラムの改変する行為であり、またPDFで使用すると言うことは、広く一般に配布されるドキュメントでフォントを埋め込む事を意味する。 そのため、変換が許されるフォントは、ライセンス上、改変が許され、PDFの埋め込みフォントとして利用でき、作成したPDFの配布が許されているフォントに限られる。 現実的は、オープンソースのフォントや自作のフォントに限られるだろう。 変換後のフォントを再配布する場合も、ラインセンス上、問題がないか確認すること。

Posted in WordPress, ネット・PC, 自作アプリ | Tagged , , , | Leave a comment