機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

SQLでWordPressの記事を正規表現検索してMarkDown形式にする – 簡単にWordPressブログの記事リンクを取得する方法

プログラミング

https://yuis.xsrv.jp/data/GIF_urIHcAtjj3QgdqTgOP8kg8cBRms8GmPn.gif

前書き

プログラミング

WordPressでブログ書いてていつも思うことがありまして、

“内部リンク全くしてないなー……”と。

内部リンクはSEO的にも結構重要な要素でして、例えば、”こちらの記事でこれについては詳しく説明しています:[URL]”みたいな文章を書いたとして、このURLがクリックされまくると、このURLのSEOは上がるんですね。
でも、こういうことをするのって、結構労力がかかるものです。
普通にやろうとしたら、WordPressのサイトに行って、検索窓から関連してそうな記事を探すべく文字列を入力して検索して、出てきた記事を開いて、その記事が関連している記事だった/紹介したい記事だった場合にはそのURLをコピーして、タイトルもコピーして、Markdown形式にして、テキストエディタにペーストしてやっと完成するわけです。軽く3分以上かかりますよね。

なので僕は今まで、こういう内部リンク的な作業は全く無視していたんですが、最近メインブログ及びこのプログラミングブログの方も結構見てくださる方が多くなってきたので、もう少し記事の質を上げたいな(んでもってSEOも上げたいな)と思った次第です。

では、実装していきます。

準備

プログラミング

mysql workbenchを使用します。

Windows10でMysqlクライアント「Workbench」を使う
WorkbenchでxserverのMysqlに接続する方法

(↑こちらは初めてこの理論で作成したMarkDownになります。我ながら便利すぎる………。思いついてからリンクを貼るまでに20秒とかかりません!)

初歩的なことですが、SQLを使用してデータベースを操作しますので、WordPressをホスティングしているサーバーにworkbenchから接続してやる必要があります。

WordPressの記事を正規表現検索してタイトルとURLをコピペする

プログラミング

まず、workbenchの仕様として、…まぁ説明しだすとキリがないのですが、今回使用する仕様としては、selectで出力したテーブルのレコードをCSV形式でクリップボードにコピーすることができるってことです。

e.g.

'Windows10でMysqlクライアント「Workbench」を使う', 'https://yuis-programming.com/?p=566'
'WorkbenchでxserverのMysqlに接続する方法', 'https://yuis-programming.com/?p=564'

これを出力するために、以下のSQLをworkbenchに貼り付けて実行します。(ctrl+Enter)

SQLはとても簡単です。

USE yuis_programming2 ; # データベース名

select post_title, guid from wp_posts
    where (post_type='post' OR post_type='page')
        AND (post_status='publish' OR post_status='future')
        AND (post_author='1')
        AND post_title REGEXP "ruby"
        AND post_content REGEXP "."
    order by post_date desc
            ;        

上の例では、記事タイトルに対して”ruby”で正規表現検索していますので、記事タイトルに”ruby”を含む記事が出力されます。
同じく、post_contentが本文ですので、本文に対して正規表現検索をしてやることももちろん可能です。

で出力結果はこんな感じになるかと思います。

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_fe85f646-c555-49f7-83fc-e1c98d95f4dd.png

で、markdownがほしい記事を選択して、ここから、copy rowをして、コピーします。

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_50d99407-1cab-4d7b-8773-f3bc765e221e.png

これで、先程のCSVがコピーされました。

CSVをMarkDown形式にする

プログラミング

では、続いてコピーしたCSVをMarkDownにしたいと思います。

WSL bashを使用します。

以下を.bashrcに入れるかターミナルにペーストしてください。

(| clip.exeってところが、windowsにコピーするっていう意味になります。ここらへんはubuntuやらmacやらでそれぞれコピーコマンドがありますので、それに変えてくださいね。)


sqlToMarkdown(){ cat > /tmp/sqlToMarkdown.txt sed -Ei "s/'(.*)',\s?'(.*)'/\[\1\]\(\2\)/g" /tmp/sqlToMarkdown.txt sed -Ei 's/\\"/"/g' /tmp/sqlToMarkdown.txt cat /tmp/sqlToMarkdown.txt | clip.exe } alias sqlmd='sqlToMarkdown'

これで、sqlmdを実行した後、ctrl+Vでペーストします。

$ sqlmd
'Windows10でMysqlクライアント「Workbench」を使う', 'https://yuis-programming.com/?p=566'
'WorkbenchでxserverのMysqlに接続する方法', 'https://yuis-programming.com/?p=564'

$

すると…

[Windows10でMysqlクライアント「Workbench」を使う](https://yuis-programming.com/?p=566)
[WorkbenchでxserverのMysqlに接続する方法](https://yuis-programming.com/?p=564)

なんと!MarkDownが出来上がってしまいましたね!

まとめ

プログラミング

これで内部リンク対策が捗るよ!やったね!

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

JavaScriptの正規表現マッチでグループマッチを取り出すには
SQlite3では正規表現(REGEXP)が使用できない??
AtomでAND検索する正規表現パターンを考えた
複数ディレクトリで文字列を正規表現で検索する
Railsで正規表現置換ツールを作成する
atom: 正規表現をグラフィカルに表示する
JavaScript: 正規表現 置換/真偽値/match


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu