とっちゃん@nyanco! です。
今回はWordPressのカスタム投稿記事のタイトルとIDを一括取得して正規表現で整形する方法についての覚書というお話です。
カスタム投稿のIDは管理画面のURLでも分かったりしますが、数が多いとやってられないので編み出した方法を備忘録も兼ねてシェアします。
WordPressデフォ機能のみでOK!
プラグインは不要ですにゃ~
カスタム投稿のタイトルとIDを一括取得する方法
Step1. XMLファイルをエクスポート
まずはWordPressデフォルト機能の「ツール」→「エクスポート」→【任意のカスタム投稿】から.xmlファイルをエクスポートします。
Step2. XMLファイルを正規表現で整形
続いて Step1. でエクスポートしたXMLファイルを正規表現の使えるテキストエディタで開き、以下の設定で検索置換します。
・検索文字列(正規表現)
\t\t<title><!\[CDATA\[([\s\S]*?)\]\]></title>[\s\S]*?<wp:post_id>(\d+)</wp:post_id>[\s\S]*?(?=<item>|$)
・置換文字列(正規表現)
@@@@$1\t$2
【正規表現解説】
titleタグの文字列とpost_idの数字を抽出し、それ以降の不要な部分を含む全ての内容を次のタグまたはファイルの終わりまでマッチさせる正規表現
まずはこれでざっくり「タイトル」と「タブ」までの文字列を、以下のような1行に整形します。
@@@@「タイトル」タブ「ID」
冒頭の「@@@@」は何ですかにゃ?
あと関係ない行もいっぱい残っちゃってますにゃ~
「@@@@」は他と被らないユニークな文字列であれば何でも良いのですが、次の検索置換にて重要になってきます。
さらに以下の設定で検索置換をします。
・検索文字列(正規表現)
^(?!@@@@).*\R?
・置換文字列 ※空欄にする
【正規表現解説】
行頭が@@@@でない行全体にマッチし、それらの行を削除する正規表現 ※\R?を使用することで、ファイルの最後の行(改行がない可能性がある)にも対応
にゃるほど!
ここで@@@@以外の行を一括削除するためにユニークな文字列として行頭に「@@@@」を付加したというわけですにゃ~
▼ズバリその通りで、これで一気に以下のようなテキストに整形されるはずです。
@@@@「タイトル-1」タブ「ID」
@@@@「タイトル-2」タブ「ID」
@@@@「タイトル-3」タブ「ID」
@@@@「タイトル-4」タブ「ID」
…
あとは行頭の「@@@@」を通常の検索置換で一括削除してからExcelまたはスプレッドシートなりにコピーペーストしたらOKです!
タブが入ってるのでタイトルとIDがちゃんとセルに分かれて編集しやすいですにゃ~!
おわりに
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント