説明
Rapls PDF Image Creator は、WordPress のメディアライブラリに PDF ファイルをアップロードすると自動的にサムネイル画像を生成します。ImageMagick (Imagick PHP エクステンション) を使用して、PDF の最初のページを画像に変換します。
👉 セットアップガイドとトラブルシューティング : CMYK の黒のサムネイルや PDF/X に関する問題の解決方法
主な機能
- 自動生成 – PDF アップロード時にサムネイルを即座に作成する
- アイキャッチ画像対応 – 生成したサムネイルを自動的に PDF のアイキャッチ画像に設定する
- 複数サイズ対応 – WordPress に登録されたすべての画像サイズで生成する
- メディアライブラリ統合 – デフォルトの PDF アイコンの代わりにサムネイルを表示する
- エディター統合 – サムネイル画像付きの PDF リンクを投稿に挿入する
- 一括生成 – 既存のすべての PDF のサムネイルを一度に生成する
- 柔軟な出力 – JPEG、PNG、WebP フォーマットから選択可能
仕組み
- メディアライブラリに PDF ファイルをアップロードする
- プラグインが最初のページを自動的に画像に変換する
- 画像を PDF のアイキャッチ画像として登録する
- ショートコードまたはテンプレート関数でサムネイルを表示する
生成されるファイル
my-document.pdf をアップロードすると、プラグインは以下を作成します:
- my-document-pdf.jpg (フルサイズカバー画像)
- my-document-pdf-1024×768.jpg (大)
- my-document-pdf-300×225.jpg (中)
- my-document-pdf-150×150.jpg (サムネイル)
- テーマ設定に基づく追加サイズ
ショートコード
[rapls_pdf_thumbnail id="123"]– サムネイル画像を表示する[rapls_pdf_thumbnail_url id="123"]– サムネイル URL を出力する[rapls_pdf_clickable_thumbnail id="123"]– PDF へのリンク付きサムネイル[rapls_pdf_download_link id="123"]– サムネイル付きダウンロードリンク
テンプレート関数
rapls_pic_get_thumbnail_url( $pdf_id, $size )– サムネイル URL を取得するrapls_pic_get_thumbnail_id( $pdf_id )– サムネイルの添付ファイル ID を取得するrapls_pic_get_thumbnail_image( $pdf_id, $size, $attr )– サムネイル HTML を取得するrapls_pic_has_thumbnail( $pdf_id )– PDF にサムネイルがあるか確認するrapls_pic_generate_thumbnail( $pdf_id, $force )– サムネイルを生成する
要件
- WordPress 5.0以上
- PHP 7.4以上
- Imagick PHP エクステンションと PDF サポートを含む ImageMagick
ほとんどの共有ホスティングで ImageMagick を利用できます。プラグイン設定の「ステータス」タブでサーバーが要件を満たしているか確認してください。
テンプレート関数の使用
テーマで PDF サムネイルを表示する:
$pdf_id = 123;
if ( rapls_pic_has_thumbnail( $pdf_id ) ) {
echo rapls_pic_get_thumbnail_image( $pdf_id, 'medium' );
}
サムネイルを PDF ファイルにリンクする:
$pdf_id = 123;
if ( $thumbnail_id = get_post_thumbnail_id( $pdf_id ) ) {
echo '<a href="' . esc_url( wp_get_attachment_url( $pdf_id ) ) . '" target="_blank">';
echo wp_get_attachment_image( $thumbnail_id, 'medium' );
echo '</a>';
}
投稿に添付されたすべての PDF の表示
$pdfs = get_posts( array(
'post_type' => 'attachment',
'post_mime_type' => 'application/pdf',
'post_parent' => get_the_ID(),
'posts_per_page' => -1,
) );
foreach ( $pdfs as $pdf ) {
if ( rapls_pic_has_thumbnail( $pdf->ID ) ) {
printf(
'<a href="%s">%s</a>',
esc_url( wp_get_attachment_url( $pdf->ID ) ),
rapls_pic_get_thumbnail_image( $pdf->ID, 'thumbnail' )
);
}
}
利用可能なフィルターフック
rapls_pdf_image_creator_thumbnail_page– 使用する PDF ページ (デフォルト: 0)rapls_pdf_image_creator_thumbnail_max_width– 最大幅rapls_pdf_image_creator_thumbnail_max_height– 最大の高さrapls_pdf_image_creator_thumbnail_resolution– DPI 単位の描画解像度 (既定: 150)rapls_pdf_image_creator_thumbnail_quality– 画像品質 (1-100)rapls_pdf_image_creator_thumbnail_format– 出力フォーマットrapls_pdf_image_creator_thumbnail_bgcolor– 背景色rapls_pdf_image_creator_thumbnail_image_attributes– 画像タグの属性rapls_pdf_image_creator_custom_insert_html– カスタム挿入 HTMLrapls_pdf_image_creator_hide_thumbnails_in_library– メディアライブラリで非表示にするrapls_pdf_image_creator_policy_paths– PDF が使えない原因を切り分けるときに探索する ImageMagick の policy.xml のパス
色変換フィルター
rapls_pdf_image_creator_color_conversion–auto(初期値)、icc、naiveのいずれか。naiveは 1.1.0より前の色に戻すrapls_pdf_image_creator_icc_paths– 検索する絶対パスの配列。プロファイルの種類 (srgb/cmyk) ごとに指定rapls_pdf_image_creator_rendering_intent–Imagick::RENDERINGINTENT_*の値 (初期値: 相対比色)rapls_pdf_image_creator_flatten_background– 透明部分を統合する背景色 (初期値: 設定した背景色。JPEG の場合はwhite)
使用するプロファイルの組み合わせを指定する場合:
add_filter( 'rapls_pdf_image_creator_icc_paths', function( $paths, $type ) {
if ( 'cmyk' === $type ) {
return array( '/srv/icc/JapanColor2011Coated.icc' );
}
return $paths;
}, 10, 2 );
利用可能なアクションフック
rapls_pdf_image_creator_before_generate– サムネイル生成前rapls_pdf_image_creator_after_generate– 生成成功後rapls_pdf_image_creator_generation_failed– 生成失敗時
スクリーンショット




インストール
rapls-pdf-image-creatorフォルダーを/wp-content/plugins/にアップロードする- WordPress の「プラグイン」メニューからプラグインを有効化する
- 「設定」>「Rapls PDF Image Creator」に移動する
- 「ステータス」タブで ImageMagick が利用可能か確認する
- PDF をアップロードしてサムネイル生成をテストする
FAQ
-
詳しいドキュメントはどこで見られますか ?
-
セットアップ手順、悪名高い「黒いサムネイル」問題 (CMYK / PDF/X) の解決策、そして実用的な活用のヒントを網羅した完全ガイド :
-
サーバーの要件は ?
-
Imagick PHP エクステンションと PDF サポートを含む ImageMagick が必要です。ほとんどの共有ホスティングで利用可能です。有効にする必要がある場合は、ホスティングプロバイダーに問い合わせてください。
-
サーバーが PDF 変換に対応しているか確認するには ?
-
「設定」>「Rapls PDF Image Creator」>「ステータス」タブに移動します。ImageMagick が利用可能で正しく設定されているかどうかを確認できます。
一般的なサーバー設定の問題を含む詳細なトラブルシューティングについては、 セットアップガイド を参照してください。
-
サムネイルが完全に真っ白な画像になります。何が原因ですか ?
-
「設定」>「Rapls PDF Image Creator」>「ステータス」を確認してください。ImageMagick 6と表示されていれば、それが原因です。
ImageMagick 6は、CMYK と判断した PDF を Ghostscript の
bmpsep8デバイスで描画します。このデバイスが出力する分版 BMP は、ImageMagick 自身の BMP リーダーでは読み戻せません。ImageMagick と Ghostscript のバージョンの組み合わせによって、読み込みがそのままエラーになるか、空のラスターが返るかのどちらかになり、後者が真っ白なサムネイルになります。ImageMagick 7は別のデバイスを使うため、この問題は起きません。ImageMagick は PDF の内容そのものからデバイスを選ぶため、Imagick の API では上書きできず、プラグイン側で回避する方法はありません。ImageMagick 7へのアップグレード、または
delegates.xmlのps:cmykデリゲートをbmpsep8からpamcmyk32へ変更することを、ご利用のホスティングサービスに依頼してください。RGB の PDF は影響を受けません。一部の PDF でのみ失敗するのはこのためです。
-
サムネイルの色が元の PDF より鮮やかに見えるのはなぜですか ?
-
PDF が CMYK で作られていて、サーバーに ICC プロファイルがない場合、プラグインは単純な計算式による変換にフォールバックします。この変換では緑と青が実際より強く出ます。ICC によるカラー管理が有効かどうかは、「設定」>「Rapls PDF Image Creator」>「ステータス」で確認できます。サーバーに CMYK プロファイルを設置するか、
rapls_pdf_image_creator_icc_pathsフィルターでその場所を指定すれば、正確な色に戻ります。 -
更新しましたが、サムネイルの色が以前のままです。なぜですか ?
-
サムネイルは自動的には再生成されません。PDF が大量にあるサイトで、更新のたびにすべてを再生成するかどうかを、プラグインが判断すべきではないためです。「設定」>「Rapls PDF Image Creator」>「一括生成」から再生成してください。
以前の色のままにしておきたい場合は、次のように従来の動作に固定してください。
add_filter( 'rapls_pdf_image_creator_color_conversion', function() { return 'naive'; } ); -
プラグインのインストール前にアップロードした PDF のサムネイルを生成できますか ?
-
はい。「設定」>「Rapls PDF Image Creator」>「一括生成」タブに移動して、既存のすべての PDF をスキャンしてサムネイルを生成できます。
-
「最大幅」と「最大高さ」を大きくしたのに、サムネイルのサイズが変わりません。なぜですか ?
-
この2つの設定は、描画されたページを縮小するだけです。拡大することはありません。ページを描画するサイズを決めるのは描画解像度で、バージョン1.2.0より前は150 DPI に固定されていました。150 DPI の A4 ページはおよそ1240×1754ピクセルなので、それを超える最大値を指定しても、それより大きくはなりませんでした。
描画解像度 (設定 > Rapls PDF Image Creator > 画像設定) を上げると、描画されるページもそれに応じて大きくなります。最大サイズは、これまでどおり結果を制限します。生成時のメモリ使用量は解像度の2乗に比例して増えるため、サーバーの性能が低い場合は少しずつ上げてください。
-
PDF をアップロードしてもサムネイルができません。原因を調べるにはどうすればよいですか ?
-
「ツール」>「サイトヘルス」を開いてください。「PDF サムネイルの生成」の項目に、このサーバーで PDF を描画できるかどうかと、できない場合にホスティング事業者へ何を依頼すればよいかが表示されます。同じ内容はプラグイン設定画面の「ステータス」タブにもあります。また「サイトヘルス」>「情報」の Rapls PDF Image Creator セクションは、サポートへの問い合わせにそのままコピーできます。
サーバー側の原因は2つあり、それぞれ依頼する内容が異なります。
- Imagick PHP 拡張がインストールされていません。インストールして有効化するよう、ホスティング事業者に依頼してください。ImageMagick を PHP から使うための拡張モジュールです。
- ImageMagick はインストールされていますが、セキュリティポリシーが PDF の読み込みを禁止しています。PDF コーダーを拒否する
policy.xmlを配布しているホスティング事業者は多く、2018年の Ghostscript の脆弱性に対する予防策が残ったものです。PDF コーダーに読み取り権限を与えるよう、ホスティング事業者に依頼してください。原因となっているファイルのパスは、プラグインが表示します。
プラグインがこの2つを判別するので、どちらを依頼すればよいか推測する必要はありません。
-
対応している画像フォーマットは ?
-
JPEG、PNG、WebP に対応しています。「画像設定」タブで希望のフォーマットを設定してください。
-
プラグインをアンインストールするとサムネイルは削除されますか ?
-
デフォルトでは削除されます。生成した画像を通常の添付ファイルとして残すには、アンインストール前に「表示設定」の「アンインストール時に画像を保持」を有効にしてください。
-
サムネイルに別のページを使用できますか ?
-
はい。
rapls_pdf_image_creator_thumbnail_pageフィルターを使用してください:add_filter( 'rapls_pdf_image_creator_thumbnail_page', function( $page, $pdf_id ) { return 1; // Use second page (0-indexed) }, 10, 2 ); -
挿入時の出力をカスタマイズするには ?
-
「設定」>「Rapls PDF Image Creator」>「挿入設定」に移動します。「画像のみ」、「タイトルリンク」、または
{thumbnail}、{pdf_url}、{pdf_title}などのプレースホルダーを使った「カスタム HTML」から選択できます。
評価
貢献者と開発者
変更履歴
1.3.0
- 追加: 「ツール」>「サイトヘルス」に「PDF サムネイルの生成」の項目を、「サイトヘルス」>「情報」に Rapls PDF Image Creator のセクションを追加しました。うまく動かないときに最初に見る場所であり、サポートへの問い合わせをコピーする場所でもあるためです
- 追加: PDF を描画できないサーバーでプラグインを有効化した場合、次に開いた管理画面でその旨を表示します。以前は何も表示されないまま有効化され、アップロードしてもサムネイルができず、理由もどこにも残りませんでした
- 追加: 変換エンジンが無いために PDF のアップロードでサムネイル生成に失敗した場合、黙って終わるのではなく、記録して表示するようにしました
- 変更: 「ImageMagick が利用できません」の一言で済ませていた表示を、2つのメッセージに分けました。Imagick 拡張が無いことと、ImageMagick のセキュリティポリシーが PDF の読み込みを禁止していることは別のサーバー問題で、ホスティング事業者に依頼する内容も異なります。どちらであるかを、原因となっている policy.xml のパスとあわせて表示します
- 変更: 「ステータス」タブ、管理画面の通知、サイトヘルスのいずれも、失敗を報告するだけでなく、ホスティング事業者へ何を依頼すればよいかを説明するようにしました
- 修正: 有効化処理が設定のデフォルト値を独自に保持しており、その内容が古いままで、1.2.0で追加した描画解像度が含まれていませんでした
- 追加: フィルター
rapls_pdf_image_creator_policy_paths。policy.xml を通常とは異なる場所に置いているビルド向け
1.2.1
- 修正: 管理画面の12個の文字列が、翻訳が用意されているロケールでも英語のまま表示されていました。同梱の日本語翻訳がコードとずれており、すでに存在しない「ステータス」タブの項目を14件持ったまま、それらを置き換えた文字列、「一括生成」のエラーメッセージ、レビューリンクの訳がありませんでした
- 機能の変更はありません。翻訳ファイルのみの更新です
1.2.0
- 追加: 描画解像度の設定 (設定 > 画像設定)。PDF ページをラスタライズする DPI を150に固定しなくなりました。サムネイルを大きくするのはこの値です。最大幅と最大高さは描画されたページを縮小するだけで拡大はしないため、ページが収まってしまえば、それらを上げても効果がありませんでした
- 追加: 添付ファイルごとに DPI を設定するフィルター
rapls_pdf_image_creator_thumbnail_resolution - 注意: 既定値は150で、これまでのすべてのバージョンと同じです。値を上げるまでサムネイルは変わりません。既存のサムネイルは自動では再生成されないため、「一括生成」タブを使ってください
1.1.1
- 表示名が更新されました : このプラグインは「Rapls PDF Image Creator – PDF のサムネイルと注目画像」として表示されるようになりました。これにより、ディレクトリ検索ではブランド名だけでなく、その機能に基づいてプラグインが見つかるようになります。
- プラグインヘッダーの説明文は、この readme に記載されている説明文と一致し、どちらも単にタイトルを繰り返すだけではなくなりました。機能上の変更はありません。
1.1.0
- 修正: CMYK の PDF から生成したサムネイルの色が濃くなりすぎ、特に緑と青が蛍光色に近い発色になっていました。sRGB への変換は、インクの特性を無視した計算式ではなく、サーバーに ICC プロファイルがある場合はそれを経由するようにしました
- 修正: 透明部分を、設定した背景色に明示的に統合するようにしました。これにより、色空間には手を加えずに「サムネイルが真っ黒になる」問題に対処します。JPEG 出力で背景色に「透明」を選んだ場合は、JPEG が透明度を保持できないため白にフォールバックします
- 変更: 非推奨の flattenImages() の呼び出しを mergeImageLayers() に置き換えました。ImageMagick 7でも正しく動作します
- 追加: 「ステータス」タブに、ICC によるカラー管理が有効かどうかと、使用中のプロファイルを表示するようにしました
- 追加: サーバーが ImageMagick 6の場合に「ステータス」タブで警告するようにしました。ImageMagick 6は CMYK の PDF を Ghostscript の bmpsep8 デバイスで描画するため、真っ白なサムネイルが生成されます。これは ImageMagick 6の制限で、プラグイン側では回避できません。ホスティングサービスに何を依頼すればよいかを、この警告で案内します
- 追加:
rapls_pdf_image_creator_icc_paths、rapls_pdf_image_creator_rendering_intent、rapls_pdf_image_creator_color_conversion、rapls_pdf_image_creator_flatten_backgroundの各フィルター - 注意: 既存のサムネイルは自動的には再生成されません。「一括生成」タブから更新してください。以前の色のままにしたい場合は、
rapls_pdf_image_creator_color_conversionフィルターに ‘naive’ を渡してください - ICC プロファイルは同梱せず、外部プログラムも起動しません。プロファイルは実行時にサーバーから読み込みます
1.0.9.10
- 修正済み: WordPress コア (または他のプラグイン) がデフォルトの文字列 $attr 値で wp_get_attachment_image() を呼び出した際、PHP 8 環境の MediaLibrary::filterAttachmentImage() で発生する「 Argument #5 ($attr) must be of type array, string given 」という PHP の致命的なエラー
- フィルター wp_get_attachment_image のコールバックは、 WordPress コアのフィルターのシグネチャに合わせて、文字列と配列の両方の $attr 値を受け入れるようになりました
1.0.9.9
- 修正 : 投稿一覧画面で PDF (または PDF 経由で添付された生成画像) が注目画像として表示される際、wp-includes/media.php で発生していた「 Undefined array key \”width\” 」および「 Undefined array key \”height\” 」という PHP の警告 (1.0.9.8で発生した不具合)
- PDF 添付ファイルのメタデータには、フルサイズプレビューから算出されたトップレベルの「 width 」および「 height 」も表示されるようになったため、コア機能の srcset および image-size ヘルパーが未定義のキーに遭遇することはなくなりました
1.0.9.8
- 修正済み : WordPress 6.9.x 以前のバージョンで、画像として埋め込まれた PDF が表示される際に、 wp-includes/media.php で発生していた 「 Undefined array key \”file\” 」という PHP 警告
- PDF 添付ファイルのメタデータにトップレベルの「 file 」キーが追加されたため、 WordPress コアの srcset 処理が未定義のキーにアクセスすることがなくなりました (コア側では WP 7.0 で独自のガードが追加されていました)
1.0.9.7
- WordPress 7.0 まで動作確認済み
- WordPress 7.0 (ブロックエディタ、サイトヘルス、REST API) との互換性が確認されています
1.0.9.6
- 修正:「自動生成」がオフの場合、 WordPress コアの組み込み PDF プレビューも無効化されるようになり、アップロード時にサムネイルが作成されなくなりました
- 自動生成が無効になっている場合に、コアによって生成された「 -pdf.jpg 」ファイルを削除するためのフィルター「 wp_generate_attachment_metadata 」を追加しました
1.0.9.5
- プラグインの URI を新しいプラグインページ (https://raplsworks.com/plugins/rapls-pdf-image-creator/) に更新しました
1.0.9.4
- 修正済み : WordPress 6.5 以降で発生していた、.l10n.php 翻訳ファイルが存在しないことによる PHP 警告が解消されました
- 翻訳の読み込みを高速化するため、PHP 用に最適化された翻訳ファイル (ja.l10n.php) を追加しました
- プラグインディレクトリから翻訳を直接読み込み、グローバルパスに関する警告を回避します
- 無効化またはアンインストール時に翻訳ファイルのキャッシュをクリアし、古いファイルへの参照を防ぎます
1.0.9.3
- 修正済み : WordPress 6.5 以降で発生していた、.l10n.php 翻訳ファイルが存在しないことによる PHP 警告が解消されました
- 翻訳の読み込みを高速化するため、PHP 用に最適化された翻訳ファイル (ja.l10n.php) を追加しました
- プラグインディレクトリから翻訳が読み込まれるように、 load_plugin_textdomain() を復元しました
1.0.9.2
- ステータスタブのサポートセクションにレビューリンクを追加しました
- Plugin URI を新しいガイドページに更新
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
- 「ステータス」タブにサポートリンク (Buy Me a Coffee) を追加
- PHP 7.4互換性を修正 (readonly プロパティと match 式を削除)
- セキュリティ改善: WP_DEBUG が有効な場合のみ error_log() を実行するよう変更
- 有効化/無効化フックから flush_rewrite_rules() を削除
- AJAX URL 処理を admin_url() を使用して簡素化
- カスタム HTML 出力に wp_kses_post() サニタイズを追加
1.0.5
- GhostScript エンジンのサポートを削除 (WordPress.org セキュリティ要件)
- ImageMagick (Imagick PHP エクステンション) のみを使用するよう変更
- 「ステータス」タブにサーバー要件の確認機能を追加
- ImageMagick サポートが不足している場合の管理画面通知を改善
- エンジン選択を削除して設定を簡素化
1.0.4
- 一意性のため名前空間を Rapls\PDFImageCreator に変更
- WordPress.org 準拠のためすべてのプレフィックスを rapls_pic_ に更新
- ショートコード名を 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 準拠のため翻訳者コメントの配置を修正
1.0.1
- WordPress Plugin Check の互換性の問題を修正
- 適切な入力サニタイズによるセキュリティ改善
- 非標準ポートでの AJAX における CORS の問題を修正
- WordPress コーディング規約に準拠するよう更新
1.0.0
- 初回リリース
- PDF アップロード時にサムネイルを自動生成
- ImageMagick エンジン対応
- サムネイル一括生成
- アイキャッチ画像対応
- ブロックエディター統合
- ショートコードとテンプレート関数を追加
- 画像設定のカスタマイズに対応
- 日本語翻訳を同梱
