WordPressのメディアライブラリでPDFがすべて同じアイコンで表示され、どれがどのファイルか分からない——この問題を解決するために作ったプラグインです。
PDFをアップロードした瞬間に表紙(1ページ目)の画像を自動生成し、メディアライブラリでサムネイルとして表示します。
私自身、クライアントのWordPressサイト保守で同じ問題を抱えていました。以前は別のプラグインで解決していたのですが、開発停止でWordPress.orgから削除されてしまい、代替を探すことに。見つかるのは機能過多で設定が複雑なものばかり。「PDFをアップしたら表紙画像を自動生成する」——ただそれだけのシンプルなプラグインがなかったので、自分で作りました。
この記事では、開発者の立場から「なぜこの設計にしたか」「実務でどう使うか」「ハマりやすいポイント」まで、WordPress.orgのreadmeには書ききれない部分を解説します。
WordPress.org:Rapls PDF Image Creator(無料 / GPLv2ライセンス / 日本語対応)
このプラグインが解決する問題
PDFアイコンだらけのメディアライブラリが、表紙画像付きの一覧に変わります。「あの赤い表紙のやつ」と視覚的にファイルを探せるようになります。
Before:すべて同じPDFアイコン → After:表紙サムネイルが表示されている
WordPressのメディアライブラリにPDFをアップロードすると、すべて同じアイコンで表示されます。10個、20個と増えていくと「どれがどのPDFか」まったく分かりません。ファイル名で判断するしかないのですが、クライアントから受け取ったPDFは「資料.pdf」「最終版.pdf」「修正2.pdf」といった名前がついていることも多く、管理が破綻します。
このプラグインを入れると、PDFをアップロードした瞬間に表紙(1ページ目)が画像として生成され、メディアライブラリに表示されます。
なぜ「サムネイル自動生成」だけに絞ったか
PDFビューアーや埋め込み表示は専用プラグインに任せ、「アップしたらサムネイルができる」という一点だけに集中しました。結果、インストールして有効化するだけで動くプラグインになりました。
類似プラグインを探したとき、多くは「PDFビューアー」や「埋め込み表示」がメイン機能でした。でも私が欲しかったのはそれではなく、アップロードしたら勝手にサムネイルができること(手動作業ゼロ)、生成した画像をアイキャッチや投稿に使えること(WordPress標準の画像として扱える)、余計な機能がないこと(ビューアーは別プラグインでいい)、の3点でした。
だからPDFビューアー機能、複数ページのサムネイル生成、外部サービス連携は意図的に削りました。
インストール方法
WordPress管理画面から検索してインストールできます。FTPやZIPファイルのアップロードは不要です。
ステップ1:プラグインの新規追加画面を開く
WordPress管理画面の左メニューから「プラグイン」→「新規プラグインを追加」をクリック
します。
管理画面の左メニュー「プラグイン」→「新規プラグインを追加」
ステップ2:プラグインを検索する
画面右上の検索欄に「Rapls PDF Image Creator」と入力します。入力するとリアルタイムで検索結果が表示されます。
検索欄に「Rapls PDF Image Creator」と入力した状態。作者名「rapls」のプラグインが表示される
検索結果に「Rapls PDF Image Creator」が表示されます。作者名が「rapls」であることを確認してください。同名や類似名のプラグインと間違えないようにするためです。
検索で見つからない場合:「Rapls PDF」だけで検索してみてください。WordPress.orgの検索は完全一致ではないため、短いキーワードの方がヒットしやすいことがあります。
ステップ3:インストールする
プラグインカードの「今すぐインストール」ボタンをクリックします。
「今すぐインストール」をクリック。数秒でインストールが完了する
ボタンが「インストール中…」に変わり、数秒で完了します。完了すると「有効化」ボタンに変わります。
ステップ4:有効化する
続けて「有効化」ボタンをクリックします。
有効化後、プラグイン一覧に「Rapls PDF Image Creator」が追加される。「設定」リンクからすぐに設定画面に移動できる
有効化が完了すると、プラグイン一覧画面に遷移します。「Rapls PDF Image Creator」の行に「設定」リンクが表示されるので、ここからプラグインの設定画面にアクセスできます。
ステップ5:動作確認——PDFをアップロードしてみる
「メディア」→「新しいメディアファイルを追加」から、任意のPDFファイルをアップロードしてください。
PDFをアップロードした直後。表紙画像が自動的にサムネイルとして生成されている
アップロードが完了した瞬間に、PDFの1ページ目が画像として自動生成されます。メディアライブラリを開くと、PDFアイコンの代わりに表紙画像がサムネイルとして表示されているはずです。
サムネイルが生成されない場合は、次のセクション「動く環境・動かない環境」でサーバーの対応状況を確認してください。
動く環境・動かない環境
このプラグインはImageMagick(Imagick PHP拡張)を使ってPDFを画像に変換します。主要レンタルサーバー(Xserver、ConoHa WING、さくら、mixhost)では標準で動作します。
| サーバー | ImageMagick | PDF変換 | 備考 |
|---|---|---|---|
| Xserver | 利用可 | 対応 | 標準で動作 |
| ConoHa WING | 利用可 | 対応 | 標準で動作 |
| さくらのレンタルサーバ | 利用可 | 対応 | 標準で動作 |
| ロリポップ | 利用可 | 要確認 | プランにより異なる |
| mixhost | 利用可 | 対応 | 標準で動作 |
| wpX Speed | 利用可 | 対応 | 標準で動作 |
プラグインを有効化後、「設定」→「Rapls PDF Image Creator」→「ステータス」タブを確認してください。
ステータスタブ。「ImageMagickが利用可能です」「PDF変換がサポートされています」の2つが表示されていればOK
「PDF変換がサポートされていません」と表示される場合は、サーバーのImageMagickポリシーでPDFが禁止されている可能性があります。共用サーバーでは変更できないことが多いので、ホスティング会社に問い合わせてください。
おすすめ設定(用途別)
デフォルト設定でも動きますが、用途によって画像サイズ・品質・フォーマットを調整すると効率的です。
プラグインの設定画面。最大幅/高さ、品質、フォーマットなどを調整できる
一般的なブログ・コーポレートサイト
最大幅/高さ 1024px、品質 80〜85、フォーマット WebP(軽量)またはJPEG(互換性重視)。「生成画像を非表示」をONにしておくとメディアライブラリの肥大化を防げます。
デザイン・印刷系(高画質が必要)
最大幅/高さ 2048px、品質 95、フォーマット PNG(劣化なし)。ポートフォリオサイトやデザイン事務所向けの設定です。
PDF大量アップロード(サーバー負荷を抑えたい)
最大幅/高さ 800px、品質 70〜75、フォーマット WebP。ファイルサイズを最小にしてサーバーの処理時間を短縮します。
実務での活用パターン
サムネイル自動生成は「資料ダウンロードページ」「物件情報」「教育機関の配布物管理」で特に効果的です。
資料ダウンロードページ:企業サイトでホワイトペーパーやカタログを配布する場合、PDFの表紙サムネイルがあると「どんな資料か」が一目で分かります。ショートコードを使えば、サムネイル付きダウンロードリンクを簡単に設置できます。
|
1 |
[rapls_pdf_download_link id="123" size="medium" text="資料をダウンロード"] |
不動産・物件情報:間取り図PDFをアップロードすると自動で間取り画像がサムネイルになります。物件一覧ページで画像として表示できるので、ユーザーがクリック前に内容を確認できます。
学校・教育機関:配布プリントや時間割PDFの管理に。教員がPDFをアップロードするだけで、保護者向けページに表紙付きで一覧表示できます。
よくあるトラブルと解決策
サムネイルが生成されない・真っ黒になる・一括生成が止まる——この3つが最も多い問題です。それぞれ原因と対策が異なります。
サムネイルが生成されない
原因1:ImageMagickが無効。「設定」→「ステータス」タブで「利用不可」と表示されていれば、サーバー側の問題です。ホスティング会社に問い合わせてください。
原因2:PDFが暗号化されている。パスワード保護されたPDFは変換できません。保護を解除してから再アップロードしてください。
原因3:PHPメモリ不足。大きなPDF(数十MB)だとPHPのメモリ制限に引っかかることがあります。wp-config.phpに以下を追加してください。
|
1 |
define( 'WP_MEMORY_LIMIT', '256M' ); |
サムネイルが真っ黒になる
原因:PDFのカラースペースがCMYK(印刷用PDF)。
Adobe IllustratorやInDesignで作成した印刷用PDFで発生しやすい問題です。
コンピュータの画面はRGB(赤・緑・青の光を混ぜる方式)で色を表現しますが、印刷物はCMYK(シアン・マゼンタ・イエロー・黒のインクを重ねる方式)を使います。ImageMagickはRGBを前提としているため、CMYKデータをそのまま処理すると色の解釈が狂い、真っ黒になります。
特に注意が必要なのがPDF/X形式です。Illustratorで「別名で保存」→「Adobe PDF」→「準拠する規格」がPDF/X-1aやPDF/X-4になっている場合、ドキュメントがRGBモードでも内部的にCMYKに変換されます。これらは印刷入稿用の国際規格で、RGBの使用が禁止されているためです。
バージョン1.0.9で自動対応済みです。プラグインがPDFのカラースペースを自動検出し、CMYKの場合はsRGBに変換してからサムネイルを生成します。
それでも真っ黒になる場合は、PDF作成時に「準拠する規格」を「なし」に設定してください。詳しくは別記事で解説しています。
一括生成が途中で止まる
原因:サーバーのタイムアウト。大量のPDFを一度に処理するとPHPの実行時間制限に引っかかります。
一括生成タブ。プラグイン導入前のPDFにもまとめてサムネイルを生成できる
対策として、深夜など負荷の低い時間帯に実行する、ブラウザを閉じない(Ajax処理なので閉じると中断される)ことを心がけてください。プラグインは内部で分割処理していますが、サーバーによっては厳しい場合もあります。
FAQ
開発者として最も多く受ける質問をまとめました。
Q. 2ページ目をサムネイルにできますか?
A. はい。設定画面の「ページ番号」を変更するか、フィルターフックで制御できます。ページ番号は0始まりなので、2ページ目は「1」です。
Q. 既存のPDFにもサムネイルを付けられますか?
A. はい。「設定」→「一括生成」タブから、プラグイン導入前にアップロードしたPDFにも一括でサムネイルを生成できます。
Q. プラグインを削除したら生成した画像はどうなりますか?
A. デフォルトでは削除されます。「アンインストール時に画像を保持」をONにしておけば、通常の画像として残ります。
Q. PDFを削除したらサムネイル画像も消えますか?
A. はい。PDFとサムネイルは紐付いているので、PDFを削除すると自動的にサムネイルも削除されます。
Q. 他のPDFプラグイン(PDF Embedderなど)と併用できますか?
A. はい。このプラグインは「サムネイル生成」に特化しているので、ビューアー系プラグインとは役割が違い、競合しません。
開発者向け:テンプレート関数とフック
テーマやプラグインからPDFサムネイルを制御したい場合は、テンプレート関数・ショートコード・フィルターフックが用意されています。
テンプレート関数
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// サムネイルがあるか確認 if ( rapls_pic_has_thumbnail( $pdf_id ) ) { echo rapls_pic_get_thumbnail_image( $pdf_id, 'medium', array( 'class' => 'pdf-thumb' ) ); } // サムネイルURLを取得 $url = rapls_pic_get_thumbnail_url( $pdf_id, 'large' ); // サムネイルの添付ファイルIDを取得 $thumbnail_id = rapls_pic_get_thumbnail_id( $pdf_id ); // サムネイルを手動生成(第2引数trueで強制再生成) $thumbnail_id = rapls_pic_generate_thumbnail( $pdf_id, true ); |
ショートコード
|
1 2 3 4 5 6 7 8 9 10 11 |
// サムネイル画像を表示 [rapls_pdf_thumbnail id="123" size="medium" class="my-class"] // サムネイルURLのみ出力 [rapls_pdf_thumbnail_url id="123" size="medium"] // クリックでPDFを開くサムネイル [rapls_pdf_clickable_thumbnail id="123" size="medium" target="_blank"] // ダウンロードリンク(サムネイル+テキスト) [rapls_pdf_download_link id="123" size="thumbnail" text="ダウンロード"] |
主要フィルターフック
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
// サムネイルに使用するページを変更(0始まり) add_filter( 'rapls_pdf_image_creator_thumbnail_page', function( $page, $pdf_id ) { return 1; // 2ページ目 }, 10, 2 ); // 最大幅を変更 add_filter( 'rapls_pdf_image_creator_thumbnail_max_width', function( $width, $pdf_id ) { return 2048; }, 10, 2 ); // 最大高さを変更 add_filter( 'rapls_pdf_image_creator_thumbnail_max_height', function( $height, $pdf_id ) { return 2048; }, 10, 2 ); // 品質を変更(1〜100) add_filter( 'rapls_pdf_image_creator_thumbnail_quality', function( $quality, $pdf_id ) { return 95; }, 10, 2 ); // フォーマットを変更(jpeg / png / webp) add_filter( 'rapls_pdf_image_creator_thumbnail_format', function( $format, $pdf_id ) { return 'webp'; }, 10, 2 ); // 背景色を変更(white / black / transparent) add_filter( 'rapls_pdf_image_creator_thumbnail_bgcolor', function( $color, $pdf_id ) { return 'transparent'; }, 10, 2 ); // 画像タグの属性を変更 add_filter( 'rapls_pdf_image_creator_thumbnail_image_attributes', function( $attr, $pdf_id ) { $attr['loading'] = 'lazy'; return $attr; }, 10, 2 ); // カスタム挿入HTMLを変更({thumbnail}, {pdf_url}, {pdf_title}が使用可能) add_filter( 'rapls_pdf_image_creator_custom_insert_html', function( $html, $pdf_id ) { return '<div class="pdf-card">{thumbnail}<a href="{pdf_url}">{pdf_title}</a></div>'; }, 10, 2 ); // メディアライブラリでのサムネイル非表示を制御 add_filter( 'rapls_pdf_image_creator_hide_thumbnails_in_library', function( $hide ) { return true; }, 10, 1 ); |
アクションフック
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// サムネイル生成前 add_action( 'rapls_pdf_image_creator_before_generate', function( $pdf_id ) { // 例:生成前のログ記録 } ); // サムネイル生成後 add_action( 'rapls_pdf_image_creator_after_generate', function( $pdf_id, $thumbnail_id ) { // 例:生成後にアイキャッチとして自動設定する処理 }, 10, 2 ); // サムネイル生成失敗時 add_action( 'rapls_pdf_image_creator_generation_failed', function( $pdf_id, $error ) { // 例:エラーログの記録や管理者への通知 }, 10, 2 ); |
その他の使用例(投稿に添付された全PDFの表示など)は、WordPress.orgのプラグインページを参照してください。
更新履歴と開発方針
このプラグインは「PDFサムネイル自動生成」という一つの機能に集中して開発しています。機能追加より安定性を優先し、WordPress本体・PHPのアップデートへの追従とセキュリティ対応を最優先で実施しています。
1.0.9.2
設定画面のステータスタブにWordPress.orgレビューページへのリンクを追加
1.0.9.1
公式ドキュメントURLを変更。
1.0.9
PDF/X-1:2001形式のPDFでサムネイルが真っ黒になる問題を解決。印刷用PDF(CMYKカラースペース)をsRGBに自動変換する機能を追加。
1.0.8
PDFの添付ファイル詳細でサムネイルURLではなくPDFのURLを表示するよう修正。生成されたサムネイルの詳細画面で元のPDFのURLを表示。「URLをクリップボードにコピー」でPDFとサムネイル両方ともPDFのURLをコピーするよう修正。AJAXメディアライブラリクエリでサムネイルが正しく非表示になるよう修正。非推奨のload_plugin_textdomain()を削除(WordPress 4.6以降は自動読み込み)。日本語翻訳をWordPress翻訳スタイルガイドに準拠。
1.0.6
ステータスタブにサポートリンクを追加。PHP 7.4互換性を修正(readonlyプロパティとmatch式を削除)。セキュリティ改善:error_log()をWP_DEBUG有効時のみに制限。activation/deactivationフックからflush_rewrite_rules()を削除。AJAX URL処理をadmin_url()に簡素化。カスタムHTML出力にwp_kses_post()サニタイズを追加。
1.0.5
GhostScriptエンジンのサポートを削除(WordPress.orgセキュリティ要件への対応)。PDF変換エンジンをImageMagickに一本化。ステータスタブにサーバー要件チェックを追加。エンジン選択設定を削除して簡素化。
なぜGhostScriptを削除したか:WordPress.orgのプラグインガイドラインで、exec()やshell_exec()を使った外部コマンド実行が禁止されているためです。GhostScriptはコマンドライン経由でしか使えないため、対応を削除しました。
1.0.4
ネームスペースをRapls\PDFImageCreatorに変更。全プレフィックスをrapls_pic_に統一(WordPress.orgガイドライン準拠)。ショートコード名をpdf_*からrapls_pdf_*に変更。AJAXエラーレスポンスからファイルパスの露出を削除。メタキーを_rapls_pic_プレフィックスに更新。
1.0.3
プラグイン名を「Rapls PDF Image Creator」にリネーム。スラグをrapls-pdf-image-creatorに更新。PHP 8.0以降で非推奨のimagedestroy()を削除。
1.0.2
WordPress.org準拠のためtranslatorsコメントの配置を修正。
1.0.1
WordPress Plugin Check互換性の問題を修正。入力サニタイズによるセキュリティ改善。非標準ポートでのAJAX CORSの問題を修正。WordPressコーディング規約に更新。
1.0.0
初回リリース。PDFアップロード時のサムネイル自動生成、ImageMagickエンジン対応、一括サムネイル生成、アイキャッチ画像対応、ブロックエディタ統合、ショートコードとテンプレート関数、画像設定のカスタマイズ、日本語翻訳を搭載。
まとめ
Rapls PDF Image Creatorは「PDFをアップしたら表紙画像を自動生成する」という一点に集中したプラグインです。
インストールして有効化するだけで動き、サムネイルが真っ黒になるCMYK問題もv1.0.9で自動対応済みです。PDFビューアーが必要なら専用プラグインと併用してください。バグ報告や機能リクエストはWordPress.orgのサポートフォーラムからお願いします。













コメント