はてなブログからWordPressへの移行手順③【画像ファイル編】

だんだん疲れてまいりましたwwwww

画像準備

前回ダウンロードしたメディアファイルをすべてFTPでサーバーにあげる。

アップロード先:wp-content/uploads/hatena

画像URL置換

「ツール」>「Search Regex」を開き、以下のように設定して「すべて置換」を実行します。

  • 検索フラグ: 「正規表現」にチェックを入れる
  • 検索する文字列: https://cdn-ak\.f\.st-hatena\.com/images/fotolife/[^/]+/[^/]+/\d+/
  • 置換後の文字列: http://sauna.color-hiyoko.com/wp-content/uploads/hatena/

とりあえずsなしなので注意

プラグイン追加

Bulk Media Register – WordPress プラグイン | WordPress.org 日本語

これでサーバーにあげた画像ファイルを全部メディアに叩きこむ。「一括登録」でおk

アイキャッチ関連

「XO Featured Image Tools」の一括生成を実行

「Search Regex」を使って一括で消し去る。

  • 検索フラグ: 「正規表現」にチェック
  • 検索する文字列: <p><img src="[^"]+" class="temp-eyecatch-dummy" /></p>\n?
  • 置換後の文字列: (空欄のまま)

↑とGeminiは言うが空欄のままにできず、全角スペースを入れた。

プラグイン XO Featured Image Toolsで一括設定できる。

→記事に画像が重複するとき

  1. WordPress管理画面の左メニューから 「Cocoon設定」 をクリック
  2. 上部にあるたくさんのタブの中から 「画像」 タブを選択
  3. 少し下にスクロールし、「アイキャッチの表示」 という項目「本文上にアイキャッチを表示する」 というチェックボックスがあるので、チェックを外す
  4. 画面の一番上、または一番下にある 「変更をまとめて保存」 ボタンを押す

はてなスター(没)

確かWordPressにもはてなスターつけられたよなぁって思ったのだが2015年くらいでメンテナンス停まってるっぽい。外部ブログの追加メソッド動かず。

DNSレコード設定

1. XSERVERのIPアドレスを取得 XSERVERのサーバーパネル「サーバー情報」を開き、「IPアドレス」をメモ

2. お名前.comでの既存レコード削除 提示されたお名前.comの設定画面で、~.com の「CNAME」レコードを「無効」にする。 (※CNAMEとAレコードは同じホスト名で共存できないため、必ず先に消す)

3. お名前.comでのAレコード追加 続けて、以下の内容で新しいレコードを1件追加する。

  • ホスト名(サブドメイン):
  • TYPE: A (※CNAMEからAに変更する)
  • VALUE(IPアドレス): 手順1でメモしたXSERVERのIPアドレス

浸透するまで数時間待つ

SSL

XSERVERのサーバーパネル「SSL設定」から無料独自SSLを追加

ブラウザで表示確認できるまで待機

管理画面の「設定」>「一般」を開き、以下の2箇所のURLを http から https に変更して保存する。

  • WordPress アドレス (URL)
  • サイトアドレス (URL)

※保存後、自動的にログアウトされるため再ログインする。

「Search Regex」を開き、以下の条件で「すべて置換」を実行する。

  • 検索する文字列: http://~.com
  • 置換後の文字列: https://~.com
  • 正規表現(Regex): チェックしない

.htaccess編集(先頭に追記)

httpでアクセスしてもhttpsにリダイレクト

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

hosts

”C:\Windows\System32\Drivers\etc\hosts”をもとに戻す(#でコメントアウトでもok)

はてなブログを非公開に設定

正常表示を確認

グノシー対応

ここで持ち主よりグノシーにフィードを流したいとのリクエスト

WordPressにグノシー向けのフィードを追加 – Qiita
WordPressにスマートニュース向けのフィードを追加 に続いて。 GunosyFeed Ver.3 仕様書/手順書 GunosyFeedValidator /path/to/theme/functions.php //フィード追加 ad…

こちらのコードを使わせていただく。

STYLEタグとPタグで警告出るとかでちょい直し(geminiが)

<?php
header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
$more = 1;

echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
do_action( 'rss_tag_pre', 'atom' );
?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en" xmlns:gnf="http://assets.gunosy.com/media/gnf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
	<title><?php echo get_option('blogname');?></title>
	<link type="text/html" href="<?php echo home_url('/');?>" rel="alternate"/>
	<subtitle><?php echo get_option('blogdescription');?></subtitle>
	<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT'), false); ?></updated>
	<rights>【コピーライト】</rights>
	<logo>【正方形ロゴ】</logo>
	<gnf:wide_image_link>【縦44px横長ロゴ】</gnf:wide_image_link>
<?php
while ( have_posts() ) : the_post(); global $post;
?>
	<entry>
		<title><![CDATA[<?php the_title_rss();?>]]></title>
		<link type="text/html" href="<?php the_permalink_rss();?>" rel="alternate"/>
		<id><?php the_ID();?></id>
		<published><?php echo get_post_time(DATE_RFC3339, true);?></published>
		<updated><?php echo get_post_modified_time(DATE_RFC3339, true);?></updated>
		<summary><?php the_excerpt_rss();?></summary>
		<content><![CDATA[
<?php if ( has_post_thumbnail() ):?>
			<figure>
			    <img src="<?php echo get_the_post_thumbnail_url($post->ID, 'large');?>">
			    <figcaption><?php echo get_the_post_thumbnail_caption($post->ID);?></figcaption>
			</figure>
<?php endif;?>
<?php
$feed_content = get_the_content_feed('atom');
// style属性を除去
$feed_content = preg_replace('/\s+style=(["\']).*?\1/i', '', $feed_content);
// <p>タグが存在しない場合、全体を<p>タグで囲む
if ( ! preg_match('/<p\b/i', $feed_content) ) {
    $feed_content = '<p>' . $feed_content . '</p>';
}
echo $feed_content;
?>
		]]></content>
		<gnf:category>any</gnf:category>
<?php
$categories = get_the_category($post->ID);
if ( !empty($categories) ):
	$cats = [];
	foreach ($categories as $category) {
		if ( !in_array($category->name, $cats) ) $cats[] = $category->name;
		if ( count($cats) >= 10 ) break;
	}
?>
		<gnf:keyword><?php echo implode(',', $cats);?></gnf:keyword>
<?php endif;?>
<?php if ( has_post_thumbnail() ):?>
		<link rel="enclosure" type="image/jpeg" title="<?php echo get_the_post_thumbnail_caption();?>" href="<?php echo get_the_post_thumbnail_url($post->ID, 'large');?>" />
<?php endif;?>
		<media:status state="<?php echo $post->post_status=='publish' ? 'active' : 'deleted';?>" />
<?php do_action( 'atom_entry' );?>
	</entry>
<?php endwhile;?>
</feed>

/wp-content/themes/cocoon-child-master/feed/gunosy.php として保存

https://~.com/feed/gunosy/

でフィードの出力を確認

完成です!!(ぜぇぜぇ)

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