見出し画像

noteからWordPressへの記事移植作業がとても大変

(約 2,700文字の記事です。)

noteも2023年の3月くらいにようやく記事のエクスポート/インポートに対応。だがしかし!アカウント全部の出し入れしかできない。

私のnoteの第2アカウントはほとんど有料記事置き場だったので丸ごと移植で問題ない。

とりあえず非公開状態で第2アカウントの記事はWordPressに移植できた。暫定的だ。まだ完全じゃない。

そして今日は当アカウントのTickTickの記事を移植してみた。


マガジン単位での移植はいきなり苦行

なにせエクスポートされた巨大なXMLテキストファイル、この中からTickTick関連記事を目視で抜き出してくる必要がある。The 手作業だ。しかもXMLファイルはシンプルに時系列の投稿順に並んでいるので、TickTick関連記事の間に日記や雑記が入ってくる。まずは記事そのものの取捨選択。いきなり大変である。

コラム☕【全部インポートしてから削除すれば?】

確かにわかる。だがそうすると無駄に投稿IDの数値が増えるのだ。もし300記事を移植して削除すると、WordPress内の投稿IDが300以上増える。ID汚染。これが嫌なのだ😭まぁ、これは管理者の100%気分の問題だが。

次は画像ファイルだ。これまた当アカウントで投稿した全ての添付ファイルが謎の文字列でDLされる。何がなにやらサッパリ分からん。かといってサムネで目視で取捨選択も現実的ではない。要らない画像をUPしていてはWordPress側の容量を無駄に逼迫するだけだ。なのでTickTick関連の画像だけを絞り込んで探す必要がある。これもまた苦行

何とか絞り込んでFTP経由でサーバにUPし、WordPress側でプラグインを使って画像ファイルをデータベースに登録。そして絞り込んだXMLファイルをWordPressにインポートしてようやくWordPressに移植完了、なのだがしかし!駄菓子菓子!!

WordPressにインポートされたのはクラシックエディタ対応画面のみ

WordPressもかつてはタイピングしやすいクラシックエディタが主流だったが今はブロックエディタがメインになってしまった。と思ったが、改めて今調べてみると、このクラシックエディタ、終わる終わる詐欺で今でも少なくとも2024年まではサポート予定で、なんだよ結局サポートが続いて利用可能なんじゃないか!と。

私はクラシックエディタが2021年末でサポート終了と聞いてWordPressはブロックエディタでスタートしたのでもはやクラシックエディタには戻れないのだが(キーボードタイピングメインでの執筆感の良さはクラシックエディタの方がいいらしいのだが、グラフィカルな演出ができるブロックエディタに慣れてしまっては、もう戻れない。)

このブロック変換でnoteの引用欄が、エディタ上で正しく変換されず壊れるのだ😭(サイト閲覧者には普通に見える)

まぁ厄介ですわ。

スラッグ(記事ごとのURL)はタイトル名が全角でものすごい長さに

スラッグも全角日本語文字列をHTML仕様の%入りの謎の文字列に変換するものだからものすごい長さに。そして意味不明に。ときどきは正しい全角文字列URLだが、ときどき謎の%付半角英数文字に。謎過ぎる……。この修正もまた手作業で1記事ずつ直さなければならない。The 苦行。


記事の最終更新日=インポートした日になる

なのでまとめてインポートした記事が一律でその最終更新日でブログにずら~と並ぶ。不自然。XMLデータ内の更新日などが全く反映されない。しょうがないのでプラグインで一括して指定記事の「投稿日=最終更新日」に上書きして対処することに😭


note記事引用のブログカードが全滅

謎のNULLという文字列が出てくる。削除だったり正しいURLのブログカードの張り直しが必要。そもそもnoteへのリンクを自前サイトの当該記事のリンク(スラッグ)に張り替える必要があるので、これもまた1つずつ手作業での更新。The 地味。

オマケにnoteへのURLリンクだけでは「どの記事へのリンクか?」が分からないので毎回リンク先記事を確認する羽目に。こうやってどんどん地味に時間が吸い取られていく……。


複数マガジンに共有された有料マガジンの管理方法の課題

noteでは複数の有料マガジンに対して1つの記事をカテゴリチェックのように複数マガジンに所属させれば、それぞれの購入者が読める。

だが今回、WordPressでユーザーアカウントごとに記事へのアクセス制限をかけた場合、有料マガジンA, B間で共有できる記事を作れるのか?という新たな課題に直面。A, Bいずれのマガジン購入者であってもその記事を読めるようにしつつ、アクセス権の付与は簡単でなければならない。これがもしマガジンA, B, Cなどといった複数にまたがる場合のスパゲッティーを回避する必要がある。

だが前日の試行錯誤のように、1つの記事が複数マガジンに共通するカテゴリに属していては記事の「前へ、次へ」の遷移で問題が発生する。なのでそれはできない。

また1記事に対して複数のセキュリティー許可を与える作戦も、管理者側が「どの記事がどのアカウントに許可したか?」が分かりにくくなり、これもまたスパゲッティーのリスクがある。

色々試行錯誤した結果、紹介したい記事の「中身そのもの」だけを新規投稿の中身として引用して表示させることに成功した。これならば投稿自体は各マガジン(カテゴリ)の制御下にある。だが表示される中身は引用=リンク表示なので、大元の記事を修正しても反映される。パーフェクト😍

ここでもショートコードの作成知識とPHPが役に立った。もうWordPressを使うメリットはPHPによるプログラマブルな制御、これに尽きる。メーカー製ブログかWordPressか?という、初心者が考えるレベルの話ではないところまで到達した。それでもまぁ、3年前の自分に話しかけるとすれば、きっとちんぷんかんぷんなのだろうが……。

これによって最初に決めたシンプルなルールがそのまま利用できる。マガジン単位=WordPress上でのカテゴリ単位での記事へのアクセス制御で済む。例え複数のマガジン購読者に見せたい記事があったとしても、記事そのものにセキュリティー上の変更を加えることなく、シンプルに「各マガジンで新規投稿してその引用先に引用したい元記事へのリンクとショートコードを貼る」だけで済む。記事更新は親元の引用先を更新すれば全てのマガジンに反映される。

データリンクは最強なのだよ。効率的なのだ。


というわけで、地味にフロントエンド側からの問題点をバックエンド側の実装で回避できたので本日は終了で~す。🍺


今回の創作活動は約6時間30分(累積 約3,433時間)
(947回目のnote更新)


いいなと思ったら応援しよう!

大和 司
読んでくれてありがとう。気長にマイペースに書いてます。この出会いに感謝😊