カテゴリー:Auto Post Thumbnailの記事一覧

RICK式アフィリエイト実践記

ポイントサイト・アンケートサイト・趣味を起点としたアフィリエイトの実践記です。

カテゴリー:Auto Post Thumbnail

「Auto Post Thumbnail」の不具合を解消する方法を考えてみた

auto_post_thumbnail

記事の概要

この記事では、「Auto Post Thumbnail」において記事投稿時にすでにアップロードされる画像を複製してしまう不具合を修正する方法について書きます。

「Auto Post Thumbnail」については以下の記事をお読みください。

WordPressで記事の先頭の画像を自動的にアイキャッチ画像に指定する方法
記事の概要この記事ではWordPressで記事の先頭の画像を自動的にアイキャッチ画像に指定できる「Aditya Mooley , Tarique Sani」氏の「Auto Post Thumbnail」を紹介します。「Auto Post Thumbnail」とは?記事の先頭の画像を自動的にアイキャッチ画像に指定してくれ

不具合を修正しようと思ったきっかけ

不具合を修正するにあたって以下のサイトを参考にしました。

コピペ一発でWordPressの投稿時にアイキャッチを自動設定させるカスタマイズ方法(YouTube対応版)
WordPressのテーマに、Auto Post Thumbnailプラグインのようなアイキャッチ自動設定機能を付け加えるカスタマイズ方法の紹介です。投稿本文にYouTubeの埋め込みが挿入されていた場合は、動画のサムネイルを取得して、アイ

上記の記事にあるスクリプトを導入すれば新着記事のアイキャッチの設定は楽になるのですが、過去記事には対応していないようでした。

やはり過去記事に適用するには「Auto Post Thumbnail」に頼らざるを得ないと考え、上記記事を参考に自分なりに修正方法を考えてみました。

不具合を修正する方法

「Auto Post Thumbnail」の”auto-post-thumbnail.php”を以下のように修正します

修正前

            // If thumb id is not found, try to look for the image in DB. Thanks to "Erwin Vrolijk" for providing this code.
            if (!$thumb_id) {
                $image = substr($image, strpos($image, '"')+1);
                $result = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE guid = '".$image."'");
                if($result){
                    $thumb_id = $result[0]->ID;
                }
                
            }

修正後

            // If thumb id is not found, try to look for the image in DB. Thanks to "Erwin Vrolijk" for providing this code.
            if (!$thumb_id && ( strpos($image, site_url()) !== false )) {
                //$image = substr($image, strpos($image, '"')+1);
                preg_match('/src *= *"([^"]+)/i', $image, $m);
                $image = $m[1];
                if ( isset($m[1]) ) {
                    //wp_postsテーブルからguidがファイルパスのものを検索してIDを取得
                    $result = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE guid = '".$image."'");
                    //IDをサムネイルをIDにセットする
                    if ( isset($result[0]) ){
                        $thumb_id = $result[0]->ID;
                    }
                }
                //サムネイルなどで存在しないときはフルサイズのものをセットする
                if ( !$thumb_id ) {
                    //ファイルパスの分割
                    $path_parts = pathinfo($image);
                    //サムネイルの追加文字列(-680x400など)を取得
                    preg_match('/-\d+x\d+$/i', $path_parts["filename"], $m);
                    //画像のアドレスにサイト名が入っていてサムネイル文字列が入っているとき
                    if ( isset($m[0]) ) {
                        //サムネイルの追加文字列(-680x400など)をファイル名から削除
                        $new_filename = str_replace($m[0], '', $path_parts["filename"]);
                        //新しいファイル名を利用してファイルパスを結語
                        $new_filepath = $path_parts["dirname"].'/'.$new_filename.'.'.$path_parts["extension"];
                        //wp_postsテーブルからguidがファイルパスのものを検索してIDを取得
                        $result = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE guid = '".$new_filepath."'");
                        //IDをサムネイルをIDにセットする
                        if ( isset($result[0]) ){
                            $thumb_id = $result[0]->ID;
                        }
                    }
                }
            }

修正パッチも作ってみた

自分でいうのも難ですが結構ソースコードをいじるのにかなり苦戦したので修正パッチも作ってみました。以下適用方法です。

手順1

「Auto Post Thumbnail」のプラグインのダウンロードページから「Auto Post Thumbnail」をダウンロードします。
auto_post_thumbnail_patch_001

手順2

「Auto Post Thumbnail」の修正パッチをダウンロードします。
auto_post_thumbnail_patch_002

手順3

ダウンロードした2つのファイルを解凍します。
auto_post_thumbnail_patch_003

手順4

”Auto Post Thumbnail Patch.exe”を実行します。
auto_post_thumbnail_patch_004

手順5

警告文が表示されるので確認後”閉じる”をクリックします。
auto_post_thumbnail_patch_005

手順6

更新するか否かを尋ねられるので”はい”をクリックします。
auto_post_thumbnail_patch_006

手順7

”参照”をクリックします。
auto_post_thumbnail_patch_007

手順8

”auto-post-thumbnail”フォルダを選択して”OK”をクリックします。
auto_post_thumbnail_patch_008

手順9

”OK”をクリックします。
auto_post_thumbnail_patch_009

手順10

書き換えが実行されます。その後”閉じる”をクリックします。
auto_post_thumbnail_patch_010

手順11

パッチを実行した”auto-post-thumbnail”フォルダをFTPでWordpressの”wp-content”→”plugin”フォルダにアップロードします。
auto_post_thumbnail_patch_011

注意事項および備考

まとめ

この記事では、「Auto Post Thumbnail」において記事投稿時にすでにアップロードされる画像を複製してしまう不具合を修正するパッチを公開してみました。

「Auto Post Thumbnail」で不要な画像が生成されるのが嫌な方は試してみてください。

参考になるコードを公開してくださった「わいひら」氏にこの場を借りてお礼申し上げます。

WordPressで記事の先頭の画像を自動的にアイキャッチ画像に指定する方法

記事の概要

この記事ではWordPressで記事の先頭の画像を自動的にアイキャッチ画像に指定できる「Aditya Mooley , Tarique Sani」氏の「Auto Post Thumbnail」を紹介します。

「Auto Post Thumbnail」とは?

記事の先頭の画像を自動的にアイキャッチ画像に指定してくれるプラグインです。

「Auto Post Thumbnail」の導入方法

手順1

WordPressの管理画面にログインします。

手順2

管理画面の左メニューの”プラグイン”をクリックします。
wp_plugin-001

手順3

”プラグイン”の中の”新規追加”をクリックします。
wp_plugin-002

手順4

画面右上の検索欄に”Auto Post Thumbnail”と入力します。
auto-post-thumbnail-001

手順5

下記画像のプラグインを探して”インストール”をクリックします。
auto-post-thumbnail-002

手順6

”インストール”のボタンが”インストール中”を経て”有効化”ボタンに変わるので、”有効化”ボタンをクリックしたらインストールは完了です。

「Auto Post Thumbnail」を適用する方法

新着記事の場合

新着記事の場合、記事公開時に自動的に適用されます。(予約投稿時は設定されません。)

過去記事の場合

過去記事の場合、以下の手順を踏むことで適用されます。

手順1

WordPressの管理画面の左メニューの”設定”にカーソルを持っていき、その後”Auto Post Thumbnail”をクリックします。
auto-post-thumbnail-003

手順2

”Generate Thumbnails”をクリックすると過去記事の
auto-post-thumbnail-004

まとめ

この記事では、WordPressで記事の先頭の画像を自動的にアイキャッチ画像に指定できる「Auto Post Thumbnail」を紹介しました。

アイキャッチ画像を特に意識しなくても自動的にに適用してくれるので便利です。

ちなみに、記事の先頭に画像がある場合、その画像とアイキャッチ画像の両方が設定されるためテーマのアイキャッチ画像を非表示にする設定が必要です。

search envelope heart star user close search-plus home clock update edit share-square chevron-left chevron-right leaf exclamation-triangle calendar comment thumb-tack link navicon aside angle-double-up angle-double-down angle-up angle-down star-half status image gallery music video category tag chat quote googleplus facebook instagram twitter rss