私は割とよくこのブログ(Wordpress)のサーバーを移転させたりします。
本当は丸ごとFTPで関連ファイルをアップロード、データベースも丸ごとインポートするのがいいのでしょうが、
ファイル数が多くなってくると中々これも大変です。
なので今回は記事のデータだけインポートさせて、アイキャッチは「Auto Post Thumbnail」で一括生成させたのですが、
何故かうまくいかない。
しかも特定の記事だけアイキャッチが生成されない。
だいぶん悩んだ挙句やっと解決できたのでその方法をご案内します。
ちなみに結果的に解決したのは「手段3」です。
お急ぎの方は記事の下の方へどうぞ!
手段1:postmeta にあるデータを削除
phpMyAdmin 等でお使いの WordPress のデータベースを覗くと「postmeta」があると思うんですが
ここには各記事の関連データ(テンプレートとかカスタムタイプとかプラグインでの設定データとか・・)が
入ってます。
んで、アイキャッチに関する情報もここにあって
「meta_key」が「_thumbnail_id」になっているものがそれに該当します。
これがいったん登録されると、その記事ではアイキャッチが設定されていることになるので
とりあえず全消ししてすべてのアイキャッチを削除してみました。
で、再度「Auto Post Thumbnail」で一括生成してみたのですが・・解決せずorz
また結局同じ記事だけサムネイルが作成されません。
何でだーーー!!
手段2:地道に1記事ずつアイキャッチ画像を設定
あーーもう悩むより手作業でやったほうが早いわ!
と、「Auto Post Thumbnail」でアイキャッチが設定されなかった記事だけチマチマ
編集画面開いて→アイキャッチ設定クリックして→画像アップして→記事保存
を繰り返しました。
イライラしつつも10記事くらいやったところで
アレ? アイキャッチが設定されてないのってjpg画像ばっかりじゃね?
と気づき・・
手段3:function.php にコード追加
jpgって拡張子が「jpeg」「jpg」「jpe」と複数あるのですが、どうやらこれが引っかかっていたらしい。
前まではうまくいっていたと思うんだけど・・なんでだろう?
とりあえず function.php に以下のコードを追記。
function split_combined_mimes_for_apt( $mime_types ) { foreach ( $mime_types as $regex => $mime_type ) { if ( false !== strpos( $regex, '|' ) ) { $keys = explode( '|', $regex ); foreach ( $keys as $key ) { $mime_types[ $key ] = $mime_type; } } } return $mime_types; } add_filter( 'mime_types', 'split_combined_mimes_for_apt' );
そして、満を持して再び「Auto Post Thumbnail」にて一括アイキャッチ生成したところ・・
解決!!
お疲れ様でした!