Rapls PDF Image Creator 公式ドキュメント|PDFアップロードで自動サムネイル生成(機能・設定・フック)

Rapls PDF Image Creator WordPress
この記事は約10分で読めます。

WordPressサイトの保守・運用において、以前は同様の機能を持つプラグインを重宝していましたが、開発停止により公式ディレクトリから取り下げられてしまう事態に遭遇しました。

代わりの手段を探したものの、機能が過剰であったり、設定が複雑すぎたりと、現場で納得して導入できるツールが見つかりませんでした。

「それならば、シンプルでかつ現場の細かなニーズを網羅した、長くメンテナンスし続けられるものを自ら作ろう」と考え、開発に至ったのがこのRapls PDF Image Creatorです。

📥 ダウンロード

WordPress.org:
Rapls PDF Image Creator(公式プラグインページ)


Rapls PDF Image Creatorの概要

Rapls PDF Image Creatorは、WordPressのメディアライブラリにPDFファイルをアップロードする際に、表紙(指定ページ)を自動で画像化してサムネイルとして登録するプラグインです。

ImageMagick(Imagick PHP拡張)を使用してPDFの表紙画像を生成し、アイキャッチ画像として設定したり、エディタに挿入したりできます。PDFの中身を画像としてプレビューできるため、管理画面の視認性が大きく向上します。


DEMO

PDFファイルをメディアライブラリにアップロードするだけで、自動的にサムネイル画像が生成されます。

Rapls PDF Image Creator 動作デモ(PDFをアップロードするとサムネイルが生成される)

生成されたサムネイルは、デフォルトのPDFアイコンの代わりに表示され、投稿やページに挿入する際にも使用できます。


INSTALLATION(インストールと要件)

インストール手順

  1. プラグインをダウンロードし、/wp-content/plugins/ ディレクトリにアップロードします。
    もしくは管理画面で「プラグイン」→「新規追加」から「Rapls PDF Image Creator」を検索してインストールします。
  2. WordPress管理画面の「プラグイン」メニューからプラグインを有効化します。
  3. 「設定」→「Rapls PDF Image Creator」で各種設定を行います。
  4. 「ステータス」タブでPDF変換エンジンの利用可能状況を確認します。

サーバー要件

  • ImageMagick(Imagick PHP拡張)+ PDF対応

多くの共用ホスティングでImageMagickは利用可能です。プラグイン設定の「ステータス」タブで、サーバーが要件を満たしているか確認できます。


FEATURES(主な機能)

1. PDFアップロード時にサムネイルを自動生成

PDFファイルをメディアライブラリにアップロードすると、表紙ページの画像が自動的に生成されます。生成される画像は、WordPressで設定されている各サイズ(サムネイル、中、大、フルサイズ)に対応します。

2. アイキャッチ画像として自動設定

生成されたサムネイル画像は、PDFのアイキャッチ画像(post-thumbnail)として自動的に登録されます。設定画面でオン/オフを切り替えられます。

3. メディアライブラリでサムネイル表示

管理画面のメディアライブラリで、デフォルトのPDFアイコンの代わりに生成したサムネイル画像を表示できます。

4. 生成画像をメディアライブラリから非表示

自動生成されたサムネイル画像をメディアライブラリの一覧から非表示にできます。PDFを削除すると、関連するサムネイル画像も自動的に削除されます。

5. エディタへの挿入時にサムネイルを使用

PDFをエディタに挿入する際、リンクテキストの代わりにサムネイル画像を使用できます。挿入形式は「画像のみ」「タイトルリンク」「カスタムHTML」から選択できます。

6. 既存PDFの一括サムネイル生成

プラグイン有効化前にアップロードされたPDFファイルに対しても、一括でサムネイルを生成できます。設定画面の「一括生成」タブから実行できます。


SETTINGS(設定詳細)

画像設定

設定項目 説明 デフォルト値
最大幅 生成画像の最大幅(px) 1024
最大高さ 生成画像の最大高さ(px) 1024
品質 JPEG/WebP画像の品質(10-100) 90
フォーマット 出力画像形式(JPEG/PNG/WebP) JPEG
背景色 透明PDFの背景色(白/黒/透明)
ページ番号 サムネイルに使用するページ(0始まり) 0(1ページ目)

表示設定

  • サムネイルアイコンを表示:メディアライブラリでPDFアイコンの代わりにサムネイルを表示
  • 生成画像を非表示:生成されたサムネイル画像をメディアライブラリの一覧から非表示
  • アンインストール時に画像を保持:プラグイン削除時に生成画像を通常の画像として残す

挿入設定

  • 画像:サムネイル画像のみを挿入
  • タイトル:PDFタイトルのテキストリンクを挿入
  • カスタムHTML:独自のHTMLテンプレートを使用

カスタムHTMLでは以下のプレースホルダーが使用できます:

{thumbnail}, {pdf_url}, {pdf_title}, {thumbnail_url}


TEMPLATE(テンプレート関数)

テーマからPDFサムネイルを制御したい場合は、テンプレート関数を使用できます。

// サムネイルURLを取得
$url = rapls_pic_get_thumbnail_url( $pdf_id, 'medium' );

// サムネイルIDを取得
$thumbnail_id = rapls_pic_get_thumbnail_id( $pdf_id );

// サムネイル画像のHTMLを取得
$img = rapls_pic_get_thumbnail_image( $pdf_id, 'medium', array( 'class' => 'pdf-thumb' ) );

// サムネイルがあるか確認
if ( rapls_pic_has_thumbnail( $pdf_id ) ) {
    // 処理
}

// サムネイルを生成(true = 強制再生成)
$thumbnail_id = rapls_pic_generate_thumbnail( $pdf_id, true );

投稿に添付されたPDFを一覧表示(例)

<?php
$pdfs = get_posts( array(
    'post_type'      => 'attachment',
    'post_mime_type' => 'application/pdf',
    'post_parent'    => get_the_ID(),
    'posts_per_page' => -1,
) );

if ( $pdfs ) :
    foreach ( $pdfs as $pdf ) :
        if ( rapls_pic_has_thumbnail( $pdf->ID ) ) :
?>
    <div class="pdf-item">
        <a href="<?php echo wp_get_attachment_url( $pdf->ID ); ?>" target="_blank" rel="noopener">
            <?php echo rapls_pic_get_thumbnail_image( $pdf->ID, 'medium' ); ?>
        </a>
        <p><?php echo esc_html( $pdf->post_title ); ?></p>
    </div>
<?php
        endif;
    endforeach;
endif;
?>

SHORTCODES(ショートコード)

投稿本文に簡単に挿入したい場合は、ショートコードが便利です。

// サムネイル画像を表示
[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="ダウンロード"]

FILTERS(フィルターフック)

挙動を細かくカスタマイズしたい場合は、フィルターフックを利用できます。

サムネイル生成設定の変更(例)

// 2ページ目をサムネイルに使用
add_filter( 'rapls_pdf_image_creator_thumbnail_page', function( $page, $pdf_id ) {
    return 1; // 0始まりなので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_quality', function( $quality, $pdf_id ) {
    return 95;
}, 10, 2 );

利用可能なフィルター一覧

  • rapls_pdf_image_creator_thumbnail_page
  • rapls_pdf_image_creator_thumbnail_max_width
  • rapls_pdf_image_creator_thumbnail_max_height
  • rapls_pdf_image_creator_thumbnail_quality
  • 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
  • rapls_pdf_image_creator_hide_thumbnails_in_library

アクションフック

  • rapls_pdf_image_creator_before_generate
  • rapls_pdf_image_creator_after_generate
  • rapls_pdf_image_creator_generation_failed

SUPPORT

このプラグインが役に立った場合は、開発をサポートしていただけると幸いです。

☕ Buy me a coffee


CHANGELOG(更新履歴)

1.0.7.1

  • URL変更

1.0.7

  • 非推奨の load_plugin_textdomain() 呼び出しを削除
  • 日本語翻訳を WordPress 翻訳スタイルガイドに準拠するよう更新

1.0.6

  • ステータスタブにサポートリンクを追加
  • PHP 7.4互換性を修正(readonlyプロパティとmatch式を削除)
  • セキュリティ改善:error_log()をWP_DEBUG有効時のみに制限
  • 有効化/無効化フックからflush_rewrite_rules()を削除
  • カスタムHTML出力にwp_kses_post() サニタイズを追加

1.0.5

  • GhostScriptエンジンのサポートを削除(WordPress.orgセキュリティ要件)
  • PDF変換にImageMagickのみを使用するよう一本化
  • ステータスタブでのサーバー要件チェックを改善

1.0.4

  • ネームスペースを Rapls\PDFImageCreator に変更
  • 全プレフィックスを rapls_pic_ に統一(WordPress.org準拠)
  • ショートコード名を rapls_pdf_* に変更
  • AJAXエラーレスポンスからファイルパス情報を削除(セキュリティ向上)

1.0.3

  • プラグイン名を「Rapls PDF Image Creator」に変更
  • Author URIを raplsworks.com に更新
  • PHP 8.0+ 互換性のための修正

1.0.0

  • 初回リリース
  • PDFアップロード時の自動サムネイル生成対応
  • 既存PDFの一括サムネイル生成機能
  • アイキャッチ画像サポート、ショートコード・テンプレート関数実装

コメント

タイトルとURLをコピーしました