WordPress 投稿URLリストを抽出する(+ phpMyAdmin、プラグイン)

Last Updated:2022年04月11日| | コメントを残す

WordPressのすべての記事URLを抽出したい場合は、前の記事で紹介したExport All URLsプラグインを使用できます。 このプラグインを使用すると、サイト内のすべてのページまたは記事のURLリストを抽出できます。

このプラグインを使用するときにエラーが発生した場合、または特定の条件に一致する記事のリストのみを希望する場合は、phpMyAdminでMySQLクエリを実行して目的のデータを抽出できます。

WordPress 投稿URLリストを抽出する

無料のプラグインである Export All URLs プラグインを使用すると、 WordPress サイト内のすべてのページまたは投稿(投稿)URLを簡単に抽出できます。 このプラグインを使用すると、投稿ID、投稿タイトル、投稿URL、カテゴリをエクスポートできます(「모든 WordPress URL エクスポート - Export All URLs プラグイン"参照)。

タイトルまたは本文に特定の単語を含む文だけを抽出する場合、または特定のカテゴリ内の文のリストが必要な場合 phpMyAdminのでクエリステートメントを実行して目的のデータを取得できます。

また、Export All URLs を実行した際にエラーが発生する場合があります。 記事の数が多いサイトやマルチサイトなどでこのプラグインを使用してデータを抽出しようとするとこのウェブサイトに致命的なエラーがあります「エラーが発生する可能性があります。

WordPress 投稿URLリストを抽出する - 致命的なエラー

DB関連タスクが頻繁に発生した場合 wpDataTablesプラグインを使用すると便利です。 このプラグインは有料プラグインで価格が299ドルでかなり高価な方ですが、フロントエンドにExcelや掲示板形式でデータを表示したい場合やデータベースからデータを抽出したい場合に便利に活用できます。

wDataTableプラグインを使用して目的のデータを抽出するクエリステートメントを作成し、phpMyAdminで実行してデータをExcelファイルまたはCSVファイルとして保存できます。 これに関連して」WordPressでタイトルに特定のキーワードを含む記事のタイトルを抽出する"文を参照してください。

以下のジョブ実行後に元に戻すことはできませんので、必ずデータベース(DB)をバックアップしてから進めてください(参照).

すべての記事のURLを抽出したい場合は、次のMySQLクエリステートメントを使用できます。

SELECT posts_post.guid AS post_guid
FROM wp_posts AS posts_post
WHERE 1=1 
   AND posts_post.post_status = 'publish'
   AND posts_post.post_type = 'post'

投稿のタイトルとURLを一緒に抽出する場合は、次のようにpost_title部分を追加します。

SELECT posts_post.post_title AS post_post_title,
       posts_post.guid AS post_guid
FROM wp_posts AS posts_post
WHERE 1=1 
   AND posts_post.post_status = 'publish'
   AND posts_post.post_type = 'post'

次のクエリを使用すると、記事のURLリンクが適用された記事のタイトルを抽出できます。

SELECT CONCAT('<a href="',posts_post.guid,'">',posts_post.post_title,'</a>') AS post_title_with_link_to_post
FROM wp_posts AS posts_post
WHERE 1=1 
   AND posts_post.post_status = 'publish'
   AND posts_post.post_type = 'post'

タイトルに特定の単語を含む文だけを抽出したい場合は、次のようなクエリ文で試してみることができます。

SELECT posts_post.guid AS post_guid
FROM wp_posts AS posts_post
WHERE 1=1
   AND posts_post.post_status = 'publish'
   AND posts_post.post_title LIKE '%プラグイン%'
   AND posts_post.post_type = 'post'

特定のカテゴリ内のすべての記事のリストを抽出したい場合は、MySQL Query to Retrieve Category from wp_posts" ドキュメントに示されたコードを応用できます。

SELECT *
FROM wp_posts
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
LEFT JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id)
WHERE wp_term_taxonomy.term_id IN (307)
GROUP BY wp_posts.ID

MySQL文法を少し知ることで、様々な応用が可能です。

MySQLクエリはphpMyAdminのSQLタブに入力して実行できます。

WordPress 投稿URLリストを抽出する - phpMyAdminでクエリを実行する

結果が表示されたら、エクスポートメニューを使用して結果をCSV、CSV for MS Excel文書などとして保存できます。

WordPress 記事URLリストを抽出する - phpMyAdminからデータをエクスポートする

phpMyAdminにアクセスする方法がわからない場合は、ホスティング会社に連絡して方法を案内することができます。 Cafe24の場合には phpMyAdmin サービスが終了したので phpMyAdmin ツールをインストールした後に接続が可能です。 ガッビアーノ などではホスティング会社のホームページからアクセスできます。 Bluehost などcPanelが提供される環境では、cPanelに接続してphpMyAdminツールにアクセスできます。

最後に、

WordPress 内のすべてのページ、またはすべての記事のURL、タイトルなどを抽出する方法について説明しました。 まずはプラグインで試してみて、目的の結果が得られない場合やエラーが発生した場合は、上記で紹介した方法を応用してデータ抽出を試みることができます。

参照


コメントを残す

コメント