[WordPress] 一括で全ての投稿記事のパーマリンクを取得する方法
2 min read
この記事で言えば https://b.0218.jp/20160111194940.html のような URL で取得する。
使用シーン
Google Analytics などと付き合わせを行う際に記事の URL が必要である場合… など。
取得方法
XML ファイルをエクスポート
get_permalink()
で取得できるが、管理画面から一発で取得したい。
ツール > エクスポート
から「エクスポートファイルをダウンロード」で XML をダウンロードする。
処理
以下のような XML が出力される。
<item>
<title>[Windows] PHPMDを導入してAtomで使用する方法</title>
<link>https://b.0218.jp/20160107193425.html</link>
<pubDate>Thu, 07 Jan 2016 10:34:25 +0000</pubDate>
<dc:creator><![CDATA[hiro]]></dc:creator>
<guid isPermaLink="false">https://b.0218.jp/?p=2354</guid>
<description></description>
<content:encoded><![CDATA[]]></content:encoded>
<excerpt:encoded><![CDATA[]]></excerpt:encoded>
<wp:post_id>2354</wp:post_id>
<wp:post_date><![CDATA[2016-01-07 19:34:25]]></wp:post_date>
<wp:post_date_gmt><![CDATA[2016-01-07 10:34:25]]></wp:post_date_gmt>
</item>
<item>
内に投稿の情報がある。その子要素に<link>
という項目がある。このタグ内に期待の URL が含まれている。
正規表現を使う
<link>
タグ内に URL が記載されているので、その行のみを取得する。
<link>
が含まれない行を選択する正規表現は以下。
^(?!.*<link>).+$
これに合致しない行を全て削除すれば URL が含まれた行のみを抽出できる。