Rapls PDF Image Creator

Rapls PDF Image Creator WordPress

PLUGIN

Rapls PDF Image Creatorは、WordPressのメディアライブラリにPDFファイルをアップロードする際に、自動的にサムネイル画像を生成するプラグインです。

ImageMagick(Imagick PHP拡張)を使用してPDFの表紙画像を生成し、アイキャッチ画像として設定したり、エディタに挿入したりすることができます。

ダウンロード:
WordPress.org プラグインページ 

DEMO

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

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

INSTALLATION

  1. プラグインをダウンロードし、/wp-content/plugins/ディレクトリにアップロードします
    または、WordPressダッシュボードで「プラグイン」→「新規追加」を選択し、「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} – サムネイル画像のimgタグ
  • {pdf_url} – PDFファイルのURL
  • {pdf_title} – PDFのタイトル
  • {thumbnail_url} – サムネイル画像の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 ) ) {
      // 処理
  }

  // サムネイルを生成
  $thumbnail_id = rapls_pic_generate_thumbnail( $pdf_id, true ); // 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">
              <?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;
  ?>

ショートコード

投稿やページ内で以下のショートコードが使用できます。

// サムネイル画像を表示
  

  // サムネイルURLのみ出力
  

  // PDFへのリンク付きサムネイル
  

  // ダウンロードリンク(サムネイル+タイトル)
  

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 );
  

画像属性のカスタマイズ

add_filter( 'rapls_pdf_image_creator_thumbnail_image_attributes', function( $attr, $pdf_id, $thumbnail_id ) {
      $attr['class'] .= ' lazyload pdf-thumbnail';
      $attr['loading'] = 'lazy';
      $attr['decoding'] = 'async';
      return $attr;
  }, 10, 3 );

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

  • 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 – 挿入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.6

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

1.0.5

  • GhostScriptエンジンのサポートを削除(WordPress.orgセキュリティ要件)
  • PDF変換にImageMagick(Imagick PHP拡張)のみを使用
  • ステータスタブでのサーバー要件チェックを改善
  • ImageMagick未対応時の管理画面通知を改善
  • エンジン選択設定を削除し設定ページを簡素化

1.0.4

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

1.0.3

  • プラグイン名を「Rapls PDF Image Creator」に変更
  • プラグインスラッグを「rapls-pdf-image-creator」に変更
  • Author URIをraplsworks.comに更新
  • PHP 8.0+互換性のため非推奨のimagedestroy()を削除
  • 定数プレフィックスをRAPLS_PIC_に変更
  • フックプレフィックスをrapls_pdf_image_creator_に変更

1.0.2

WordPress.org プラグインガイドライン準拠のための修正

1.0.1

  • WordPress Plugin Check 互換性問題を修正
  • セキュリティ改善:入力サニタイズとエスケープの追加
  • 非標準ポートでのAJAX CORSエラーを修正
  • フィルターフック名を rapls_pdf_image_creator_ プレフィックスに変更
  • 非推奨の load_plugin_textdomain() を削除
  • WordPressコーディング規約に準拠

1.0.0

  • 初回リリース
  • PDFアップロード時の自動サムネイル生成
  • ImageMagickエンジン対応
  • 既存PDFの一括サムネイル生成
  • アイキャッチ画像サポート
  • ブロックエディタ対応
  • ショートコード(4種類)
  • テンプレート関数(5種類)
  • 表示設定(サムネイルアイコン、生成画像非表示)
  • 挿入設定(カスタムHTMLテンプレート対応)
  • 画像設定(サイズ、品質、フォーマット、背景色)
  • 日本語翻訳同梱

コメント

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