【WordPress】独自の短縮URLを使用する方法

独自の短縮URLの導入を行ったので、それをWordPressで使用できるようにします。

独自の短縮URLを導入してみた
URLの短縮といえば「bit.ly」や「goo.gl」が有名です。 このサービスを利用することで長くて見づらいURLを短縮することが可能になります。 一方でこれらのサービスは突然終了してし...

独自で短縮URLを用意するメリットは上のページでも紹介しましたが、大きく2つあります。

  • 自分で止めないかぎり使用できなくなることがない
    • goo.glやbit.lyなどのサービスは突然終了する可能性があり、その時は短縮したURLが全て使用できなくなる可能性があります
  • 解析情報などを公開しないようにできる
    • goo.glやbit.lyなど、短縮URLの後ろに「+」をつけるとそのURLのクリック数などの情報が見えてしまうサービスがあります
    • 今は見えなくても将来的に規約や仕様が変更されて見えるようになる可能性があります

私が導入したYOURLSは管理画面からURLの短縮を行えますが、API経由で短縮を行うこともできます。

今回はこれを利用してWordPressの機能として短縮URLを使用できるようにします。

スポンサーリンク

WordPressの短縮URL

WordPressにも短縮URLを取得する機能は存在しますが、記事IDを使用した単純なものです。

またWordPress4.4からはその単純な短縮URLを投稿画面で取得するボタンが表示されなくなりました。

短縮URLを取得する関数はwp-includes/link-template.phpにwp_get_shortlink関数として定義されています。

この関数では実際に短縮URLを生成する前に「pre_get_shortlink」というフィルタが存在します。

今回はこのフィルタをフックして独自の短縮URLを返すようにします。

実装

ここで説明する内容は直接本番環境で行わないほうが無難です。
一度ローカル環境で確かめた上で反映を行うなどの手順を踏んでください。

以下のプログラムを子テーマのfunctions.phpなどに記述します。

YOURLSへのURL、ユーザー名、パスワードは設定に合わせて変更します。

投稿の短縮URLは「my_get_post_short_url」で取得できます。

その関数内では一度取得した短縮URLをメタ情報に入れて何度もAPIを使用しないようにしています。

pre_get_shortlinkをフックしてmy_get_post_short_urlの値を返すことで、投稿画面で短縮URLが有効になります。

short-url1

short-url2

投稿時に確実に短縮URLが生成されるように「transition_post_status」をフックして「my_get_post_short_url」を呼び出しています。

このブログでツイッターへの自動投稿に使用しているWP to Twitterの場合は、デフォルトの設定で短縮URLが使用されるようになります。

short-url3

short-url4

いつでも短縮URLを使用できるようにしてみる

ページ上部の管理バーに短縮URLを取得するフォームを追加してみます。

以下のプログラムを追加します。

上部の管理バーにアイコンが追加されます。

short-url5

クリックすると入力欄が出てくるので、URLを入力してEnterを押します。

short-url6

short-url7

正しく短縮URLが生成された場合はpromptで表示されます。

short-url8

どんなURLでも簡単に短縮URLにすることができるようになりました。

コメント

  1. 94Leroy より:

    Hi blogger, i must say you have very interesting content here.
    Your page should go viral. You need initial traffic only.

    How to get it? Search for; Mertiso’s tips go viral