投稿記事のURLにスラッグかPostIDを使うプラグイン


WordPressで記事を投稿する際、デフォルトでは記事のURLにタイトルが入ってくるので、日本語URLにしたくないという人はプラグインなどを入れていると思います。
今回紹介する(つくった)プラグインは、スラッグ(自分でつけたい任意のURL)か、PostIDをURLとするプラグインです。


「FC2やLivedoorブログの時とURLはほとんどそのままでWordPressに移行したいけど、投稿する時のURLはWordPressでも数字(PostID)にしたい!」
「今までURL指定してたけど、今後はなんとなくPostIDがいい!」
という場合などにどうぞっ。
※現在不具合がありますので、改善するまでダウンロードしないようお願いいたします。

目次

バージョンアップしました

2013年2月3日
「Slug or PostID 1.0」を公開しました。
変更点は下記になります。
  • Windows Live Writerなどからの投稿でもPostIDが入るように調整しました。
    この機能を使うにはWordpress3.3以降が必要です。
  • XML RPCからの投稿にも対応しました。
    ただし、この場合のみスラッグに「postid」と入力しておく必要があります。
使い方などは今までと同じです。

インストール

http://wordpress.org/extend/plugins/slug-or-postid/
(1)↑のサイトからファイルをダウンロードして解凍し、できたフォルダをプラグインディレクトリに入れた後、プラグインを有効化します。
※現在不具合がありますので、改善するまでダウンロードしないようお願いいたします。

(2)Wordpressのパーマリンク設定を「%postname%」に設定します。


インストールはこれで終わりです。

使い方

このプラグイン導入後、URLは以下の2タイプとなります。

URLを自分で指定する

投稿画面にあるパーマリンクの所で直接指定するか、スラッグを表示してそこに設定したいURLを入力します。

この欄に値が入っている場合、そのURLとなります。

URLをPostIDにする

新規投稿をして、投稿画面にあるパーマリンクやスラッグを何も入力しないまま『公開』または『下書き保存』をすると、URLがPostIDとなります。
正確には、スラッグにPostIDが登録されます。

何も入力しなければ上記のようにタイトルが自動で指定されているように見えますが、保存時にPostIDに変わります。

また、一度スラッグを指定したあとでも、PostIDを指定したい際はスラッグに入力している値を削除してから一度OKを押し、その後『公開』または『下書き保存』をすると、URLがPostIDとなります。


使うことはレアケースかもしれませんが、必要とあればぜひご利用ください。
WordPress3.1で動作確認しています。



(2013年4月17日 追記)
※「投稿」ではなく「固定ページ」を新規登録しようとした場合、WordPressの仕様上サフィックス(-2など)がスラッグの後ろについてしまいます。
「固定ページ」においてはアルファベットも組み合わせた適切な名前をつけられることをお奨めいたします。

“投稿記事のURLにスラッグかPostIDを使うプラグイン” への20件のフィードバック

  1. [...] 投稿記事のURLにスラッグかPostIDを使うプラグイン [...]

  2. [...] スラッグを自動的にPostIDに置き換えるプラグインを入れておくことで、長々とした日本語のタイトルがパーマリンクになることを避けます。 [...]

  3. [...] 投稿記事のURLにスラッグかPostIDを使うプラグイン – うにまくら.jp [...]

  4. かず より:

    すごくたすかりました。
    いろいろ検索し、いくつも試してみました。ファイルを直接書き換える情報のサイトも見ましたけど、WPのバージョンが変わってて該当箇所の記述がかわってたり。
    中国語むけの機能もみました。
    しかしこのプラグインが一番です。
    WPの管理画面から探して組み込めると最高です。

  5. WordPressでパーマリンクに日本語名を表示させない方法 - Makky blog.com より:

    [...] 「スラッグを自動的にPostIDに置き換えるプラグイン」 [...]

  6. WordPressを始めるとき最初に組み込んでおきたいプラグイン - Makky blog.com より:

    [...] Slugs or PostID:記事のパーマリンクを、自動的に(PostID).htmlにしてくれるプラグイン。パーマリンク設定が/%postname%/に設定すると記事のタイトルが自動でスラッグ入力されます。記事のタイ [...]

  7. [...] 私はブログ記事のパーマリンクに日本語が入るのは嫌なので、Slugs or PostID プラグインを入れて、デフォルトでPostIDが入るようにしています。 [...]

  8. [...] ら…。 ちなみに、そのスラグの自動生成に関してはうにまくらさんの投稿記事のURLにスラッグかPostIDを使うプラグインを、PostIDでなく時間を元に生成する形に条件を変更する可変をした [...]

  9. 坂井 より:

    Slug or PostID

    上記プラグイン使わせて頂いたのですが、固定ページで作成すると「-2」というのが必ずつきます。

    実際のpage idは一意の存在になっています。

    回避する方法はないのでしょうか。

    • うにまくら より:

      > 坂井様
      ありがとうございます。
      ご連絡いただいている件に関して、どのバージョンからかは判りませんが、WordPressの仕様が影響しております。

      投稿ではなく、固定ページにおいて数字のみのスラッグを指定した場合、サフィックス(-2)が後ろについてしまう仕様になっているようです。

      ——————————————
      参考:
      wordpressでのパーマリンクの表示について
      http://okwave.jp/qa/q6961509.html
      ——————————————


      WordPress3.5にてソースを確認したところ、上記サイトの回答と同様に「wp-includes/post.php」の3108行目~3116行目あたりにおいて、問題の処理をしております。

      ここのコアファイルの記述のうち、数字のみが引っ掛かる問題の記述
      ——————————————
      || preg_match( “@^($wp_rewrite->pagination_base)?\d+$@”, $slug )
      ——————————————
      を取り除くことでサフィックス(-2)はつかなくなります。

      ただ、WordPressのページ分割機能など他の機能において新たな問題が発生してしまう可能性が十分にございますので、コアファイルを修正される際は自己責任にてお願いいたします。

  10. mmaker より:

    wordpress公式プラグインディレクトリにも書きましたが一応コチラにも。

    ちょうどこういう機能が欲しくて喜んで使ってたのですが
    スラッグを設定せずに自動でpostID割り当てられた記事が404エラーになってしまいます。

    2サイトでこう言う症状があったので、一端使用を止めている状態です。

    wordpress本体のバージョンによるものなのかとも思ったのですが、

    3.3.1 動作
    3.4.2 404エラー
    3.5 動作
    3.5.1 404エラー
    と不規則だったので、wordpress本体のバージョンに依存するモノでも名些細。

    また、3.3.1と3.4.2は同じサーバーでほぼ同じ設定、プラグインも同じモノを使用(若干のバージョン違いはありますが)しているので、プラグインの問題でもなさそうな・・・

    同じような症状の報告はありませんでしょうか?

    機能自体はすごく便利なので、バージョンアップを期待します。

    • うにまくら より:

      > mmaker様
      ご連絡ありがとうございます。
      mmaker様と同様の症状の報告は今のところ聞いていないのですが、少し気になりますね。。
      私の環境にて3.5.1で軽く試してみたのですが、404エラーとはなりませんでしたので、何か複合的な要因で起こるのかもしれません。

      差し支えなければ、404エラーとなる環境に入っているその他のWordpressプラグインなどを教えて頂けないでしょうか?
      同様の現象が起こるか検証してみたいと思います。

      よろしくお願いいたします。

  11. [...] 数字だけのパーマリンクは、PostIdを利用して、パーマリンク設定でカスタム構造を「/%post_id%」に設定したり、カスタム構造を「%postname%」に設定して、Slugs or PostIDを利用すると作れます。 [...]

  12. mmaker より:

    ご返信遅れました。

    http://www.wakatta-blog.com/wordpress-permalink-4-humber-url.html

    この記事にあるような四桁フィルタにかかってしまってたのかもしれません。

  13. mmaker より:

    その後、どうでしょうか?

    プラグインのバージョンアップでの改善予定はありますか??

  14. うにまくら より:

    > mmaker様
    現象が起こることをこちらでも確認し、プラグインでのうまい対処法がないかを模索しているのですが、まだ改修にまではいたっていないのが現状です。
    折角使っていただいておりましたのに、申し訳ございません。

    取り急ぎの対処としましては、Wordpress標準の年別ページを利用しないのであれば上記サイトで紹介されておりました
    「http://ja.forums.wordpress.org/topic/11003?replies=5」
    にある方法を行うことで、年別ページではなく投稿ページが表示されることを確認しておりますので、お試しくださいませ。

    お手数をおかけいたしますが、何卒よろしくおねがいいたいします。

  15. ruoliu より:

    hi,thanks for your plugin.
    And I would like to ask questions about category_slug.

    I don’t know how to get category_id When create the new post.How to modify in the plugin?

    –my code—-wrong-↓-

    /**
    * Get Post category ID
    */
    function GetcategoryID($data=null) {
    $categoryID = null;
    if (isset($_POST['category_ID'])) {
    $categoryID = $_POST['category_ID'];
    }

    return $categoryID;
    }

    ——
    Thank you very much!

  16. うにまくら より:

    > ruoliu
    hi, ruoliu.
    Please try this.

    /**********************************/
    function GetcategoryID($data=null) {
    $categoryID = null;
    if (isset($_POST['post_category'])) {
    $categoryID = $_POST['post_category'];
    }

    return $categoryID;
    }
    /**********************************/

    Caution, $_POST['post_category'] is array data.
    Moreover, 0th in the array data is unnecessary.

    Thank you.

コメントを残す