WordPressの特定カテゴリだけを別サイトに移転

引っ越し
©いらすとや.

WordPressでブログを作っていて、いつのまにか特定のカテゴリーが巨大化してブログの方向性がおかしくなることはある筈。
ワインのブログにちょこっと盆栽について書いていたつもりがいつのまにか盆栽の記事の方が多くなってるみたいな。ワインと盆栽では読者層が全く異なるので分けてしまった方が良い。
この「がとらぼ」でも中華スマホの紹介ページ(カテゴリ)を作っていたらいつのまにかスマホカテゴリが肥大した。で、このカテゴリの成長に合わせて「がとらぼ」の一部ではなく別のサイト(子サイト)のように見えるように作っていたが、それなら完全に別のサイトにしてしまった方が良いと思った。

この記事は、特定カテゴリのデータ引っ越しとリダイレクトについて。

特定カテゴリのデータの引っ越し

WordPressデータエクスポート
移転元サイトのWordPress管理パネルの「ツール」→「エクスポート」を開く。
「投稿」を選ぶ。
「カテゴリ」で引っ越しする特定のカテゴリを選ぶ。
「開始日時」と「終了日時」を必ず選択する。少なくとも2022年10月1日時点で最新のWordPress 6.0.2までは期間指定を行わないとエクスポートに失敗する。また、投稿数が多いとエクスポート或いはインポートで失敗しくじるかもしれないので期間を調整して1つのエクスポートファイルに含まれる記事数を数百以内程度にする。
必要に応じて「固定ページ」と「メディア」もそれぞれエクスポート。ただし、「固定ページ」と「メディア」はカテゴリのような仕分けはできないので移転先で不要な「固定ページ」と「メディア」を削除することになる。

WordPressデータインポート 1
移転先サイトのWordPress管理パネルの「ツール」→「インポート」を開く。
WordPress→WordPressの引っ越しなので「WordPress」のインポートになる。初めての場合は「今すぐインストール」をクリックする。クリックするだけで自動的にインストールされる。初めて以降は次へ。

WordPressデータインポート 2
「WordPress」の「今すぐインストール」が「インポーターの実行」に変わる(初めてではない場合は最初から「インポーターの実行」が表示される)
「インポーターの実行」をクリック。

WordPressデータインポート 3
「ファイルを選択」ボタンをクリックするとファイル選択画面が表示されるので移転元でエクスポートしたファイルを1つ選択する。
「ファイルをアップロードしてインポート」をクリック。

WordPressデータインポート 4
移転元と移転先で管理者やその他のユーザー名が変わることはよくあること。データをインポートするときに新しい投稿者を指定することができる。
添付ファイルのインポートのチェックを付けると記事に含まれる画像などインポート時に自動的に移転元サイトからダウンロードして登録してくれる。これがとても便利なのでチェックするのがオススメ。ただし、数十万/数百万単位であまりに多いようであればチェックしない方が良いかも。
「実行」をクリック。

インポートの手順で「投稿」(「固定ページ」「メディア」)で複数に分けてエクスポートしたファイルを1つずつ順番にインポートする。

このデータ引っ越し方法だと、移転元で付けられた投稿ID(番号)は移転先でも同じ投稿ID(番号)になる。このおかげで次のリダイレクトの設定がラク。

リダイレクト設定 カテゴリを識別できるスラッグの場合

スラッグ(URL)にカテゴリ名が入っているなら簡単。WordPressで処理の追加は不要。(WordPressでやりたければそれもアリ)

  • https://example.com/wine/hogehoge (ワインのカテゴリであることがURLで明らか)
  • https://example.com/bonsai/hogehoge (盆栽のカテゴリであることがURLで明らか)
  • Nginxリダイレクト設定例 (引っ越し元サイト側)
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    server {
        listen       192.168.0.1:443 ssl http2;
        listen       [fde4:8dba:82e1::abcd/64]:443 ssl http2;
        server_name  example.com;
    
        #中略
    
        rewrite ^/bonsai(.*)$ http://example.jp/bonsai$1 permanent;
    
        #後略
    }
    
    リダイレクト設定は8行目。
    上の例だと、https://example.com/bonsai/article は https://example.jp/bonsai/article にリダイレクトされるようになる。

    引越し先ではカテゴリ名はスラッグに含まれないということであれば
    rewrite ^/bonsai(.*)$ http://example.jp$1 permanent;
    この例だと、https://example.com/bonsai/article は https://example.jp/article にリダイレクトされるようになる。
    もちろん、リダイレクト先のURLでそのページが表示されないと意味ない。

    ウェブサーバでのリダイレクト設定の場合は移転元サイトの「投稿」「固定ページ」(「メディア」)は削除しても問題ないのがメリット。リダイレクトは少なくとも1年ほどは継続する方が良いかと思います。

    リダイレクト カテゴリを識別できないスラッグの場合

    「がとらぼ」では投稿記事のURLは https://gato.intaa.net/archives/00000 のようにarchives/数字という形式のURL。これはURLを見てもその投稿が何のカテゴリに属しているかは判らない。このようなURLではウェブサーバでリダイレクトさせるというのは事実上無理。カテゴリ内の記事URLを全てリストアップして個別にリダイレクト設定を書くならそれでも可だけど普通はそんなことしない。

    WordPress /wp-content/themes/使用中テーマ/functions.php に追加 (引っ越し元サイト側)
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    function category_redirect_to_newsite() {
    if ( !is_home() && !is_front_page() ) {
        $cat_slag = 'bonsai';    //移転するカテゴリのスラッグ (例: bonsai)
        $to_domain = 'https://example.com'; //移転先のドメイン
        $cur_uri = $_SERVER["REQUEST_URI"];;
        $new_url = $to_domain . $cur_uri;
        if ( in_category( $cat_slag ) ) {
            wp_redirect( $new_url, 301 );  //宛先がローカルならwp_safe_redirectを使う 
            exit;
        }
      }
    }
    add_action('template_redirect', 'category_redirect_to_newsite');
    

    「移転するカテゴリのスラッグ」というのはWordPressの管理パネルのメニューから「投稿」→「カテゴリ」で対象のカテゴリを選択して「スラッグ」欄に表示される文字列。(半角英数字とハイフンで構成される)

    WordPressでリダイレクト表示を行う場合、移転後も少なくとも1年ほど(リダイレクトを止めるまで)移転記事を消さずに置いておく必要がある。(元記事が無くなるとその記事のリダイレクトが行われなくなる)

    「特定カテゴリを新しいサイトなどに移すことで移転元サイトの専門性が高くなるので閲覧者の好感度は上がるだろうし長期で見ればSEO的にも良さげ。ただし、一部移転から暫くは移転先サイトは苦戦するかも。新規サイトであれば特に。そのあたりよく考えて迂闊なカテゴリ作成(拡張)はやめて最初から新しいサイトを作る方が良さそう。元が雑記サイト寄りだと難しいかもだけど。

    Windows 11のシステム要件を満たさないPCでWindows11の大型アップデートを適用

    更新
    ©いらすとや.

    Windows 11で最初の大型アップデートの提供が始まった。
    しかし、Windows 11のシステム要件を満たさないPCにWindows 11をインストールしている場合はこのアップデートの導入に困る筈。
    「がとらぼ」では以前、「Windows 11のシステム要件を満たさないPCでWindows10からWindows11にアップグレード」でインストールメディアの改変無しでシステム要件回避を行ってアップグレードする方法を紹介したが、そのシステム要件チェックの回避方法は既にマイクロソフトによって対策済みだったので他の方法をとることに。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 1
    https://www.microsoft.com/ja-jp/software-download/windows11
    「Windows 11のインストールメディアを作成する」の「今すぐダウンロード」からメディアクリエーションツールをダウンロードしてWindows上で実行。8GB以上の容量のUSBメモリにインストールメディアを作成する。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 2
    作成したインストールメディアをPCに接続し、エクスプローラを開いてインストールメディアのドライブのsetup.exeを実行する。

    以下2つの画像は更新失敗について、この記事のメインの手順はその下から。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 3
    普通に進行すると、おなじみのシステム要件チェックが実行されてアップデートできない。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 4
    昨年のWindows 10からWindows 11への更新の際のシステム要件チェックの回避方法は既に対策済みなのでこのような画面が出てセットアップを終了するしかない。どうもappraiserres.dllの削除に対応したっぽい。

    今回のシステム要件チェック回避方法

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 5
    作成したインストールメディアをPCに接続し、setup.exeを実行後、暫く待つとこの画面になる。
    ここで通常は「次へ」を押すところだが、今はまだ押さない。
    前回の回避策では「セットアップでの更新プログラムのダウンロード方法の変更」を押したがこちらはもう使わない。
    つまり、どちらもクリックせずに、次の手順。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 6
    ここで、セットアップ画面は閉じないでそのままにして、スタートボタンから検索欄に cmd と入力する。コマンドプロンプトが第一候補として表示されるので右列の「管理者として実行」をクリック。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 7
    管理者権限のコマンドラインが開いたら、
    copy NUL "C:\$WINDOWS.~BT\Sources\appraiserres.dll"
    を入力して[Enter]
    「上書きしますか?」の問いに yes [Enter]
    「1個のファイルをコピーしました」が表示されたらexit [Enter]を入力してコマンドプロンプトを終了。
    UNIX, Linuxではヌルデバイスは /dev/null だが、Windowsでは NUL。Lが1つ少ないので注意。

    2022年9月27日:コピーに失敗する場合があることとその対処方法についてコメントをいただきました。コメントはこの記事の最下部にあります。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 8
    セットアップ画面にに戻り、ようやく「次へ」をクリック。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 9
    システム要件チェックが走り始めたような画面が表示されるが、システム要件NGの画面にはならずに「適用される通知とライセンス条項」の画面が表示される。
    つまりシステム要件チェックを回避できた。
    「同意する」をクリック。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 10
    ダウンロードが始まり長く待たされる。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 11
    「引き継ぐものを変更」で必要に応じて変更し、右下の「インストール」をクリック。
    「インストール」をクリックするとアップデート完了まで事実上引き返せない。ここから複数回のシステム再起動を含む長時間の更新作業が行われる。

    Widdows 11のシステム要件を満たさないPCでWindows 11大型アップデート導入 12
    更新後のバージョンを確認した。正常そう。

    と、いうことで、TPMってなんじゃらほい?というようなクソ古いPCでも無事にアップデートできた。

    上の記事のスクリーンショットはWindows 11 Homeです。2022年10月15日にWindows 11 Pro版を同じ手順で更新しましたが、これも問題なく成功しています。

    関連記事:

    Up