この実装、面倒なら代行します
サイトのリニューアルで新しいサイトを立ち上げる際、既存の記事をまるごと新サイトに移行したいという要望は結構あります。
100ウェブでも移行についてはすでにいくつか事例を紹介もしています。
ただ、上で紹介したのはあくまでテキスト情報の移行のみです。
たとえば記事一覧ページが{サムネイル画像+タイトル}という形で記事を並べるデザインの場合、テキスト情報だけでなくサムネイル画像の移行が必要になります。サムネイル画像は通常、記事の「アイキャッチ」として設定しているサイトがほとんどだと思いますので、サムネイル画像の移行は言い換えれば「アイキャッチ」の移行ということになります。とすると、テキスト情報と一緒にこの「アイキャッチ」を移行しないことには、記事を完全に移行したことにならない・・・。
ということで今回は、記事の移行の際、サムネイル画像も含めて移行する手順についてご紹介したいと思います。
ところで、アイキャッチ画像の移行はそもそもプラグインでありそうだな、と思いますよね。
ところが、100ウェブでいろいろ探して試した結果、どれもうまく活用できませんでした。
そういう経緯から、今回紹介する手順については、多少アナログな作業は増えますが、それでも確実で汎用性の高いサムネイル画像移行手順だと思います。実際100ウェブが携わる移行プロジェクトではほぼこのやり方でやっています。
さらに、ドメインが変わるなどでパスが移行元と移行先で変わる場合は、移行先のパスに直します。
(アドバンストカスタムフィールドの詳しい使い方は検索すればたくさん出てきますので、ここでは省略させてください)
移行先のカスタム投稿タイプを対象にして、以下のようなカスタムフィールドを用意します。
このcolumn_temp_imgフィールドにアイキャッチ画像のURLを登録します。
archive.phpなど一覧出力のテンプレートファイルのループ部分のサンプルコードを以下に記します。
<?php $html = ''; if ( have_posts() ) { while ( have_posts() ) { the_post(); $title = get_the_title(); $image_url = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'thumbnail' ); if ($image_url){ $image_url = $image_url[0]; } else { $image_url = get_field('column_temp_img', $post->ID); } $html .= '<div><article><a href="' . get_the_permalink() . '"> <div class="news-img"><img src="' . esc_html($image_url) . '" alt="' . $title . '"></div> <div class="news-txt"><h3>' . $title . '</h3></div></a></article></div>'; } } echo $html; ?>
こんな感じですね。
アイキャッチが登録されていればそちらを表示、登録されていなければ ‘column_temp_img’ フィールドに登録されているURLを表示します。
イコール、新サイトで新たに作る記事の場合はアイキャッチに画像を登録すればサムネイルとして出るし、旧サイトの記事はアイキャッチがなくても画像パス(URL)直接指定でサムネイルが表示されるということです。
以上、長くなりましたがどうだったでしょう?
アイキャッチの移行を諦めていたサイト制作者の方がいたら、少しは役に立つかな?って思います。
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。