# WordPress のカスタム投稿タイプのパーマリンクを簡単に変更できるようになるプラグイン「Simple Post Type Permalinks」作った。

- リンク: https://torounit.com/blog/wordpress-%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ae%e3%83%91%e3%83%bc%e3%83%9e%e3%83%aa%e3%83%b3%e3%82%af%e3%82%92%e7%b0%a1%e5%8d%98%e3%81%ab/
- 公開日: 2015-04-02T19:54:49+09:00
- 作成者: Toro\_Unit

[Simple Post Type Permalinks](https://wordpress.org/plugins/simple-post-type-permalinks/)
というプラグインをリリースしました。

名前通り、投稿タイプごとにパーマリンクを設定できるプラグインです。[どこかで聞いたことのあるような名前](https://torounit.com/plugins/custom-post-type-permalinks/)
のプラグインですが、それとはまた別物です。

## できること

 * カスタム投稿タイプごとにパーマリンクを設定。`%post_id%`と`%postname%`が使用可能。
 * register_post_typeで、パーマリンク構造の定義。

の2種類です。

## できないこと

 * タクソノミー（カテゴリーやタグを含む）等には対応してません。
 * 日付、著者などのタグも使えません。
 * `%post_id%`と`%postname%`だけしか使えません。
 * アーカイブのパーマリンクを自動的に追加しません。

とにかく、**シングルページのパーマリンクのカスタマイズだけが可能です**。

## 使い方

管理画面は、こんな感じです。

[⌊sptp⌉⌊sptp⌉[

[例のプラグイン](https://torounit.com/plugins/custom-post-type-permalinks/)と同じく「
パーマリンク設定」のページの下にパーマリンク設定のセクションがあります。そこから、
適当にパーマリンクを設定して下さい。投稿タイプのスラッグを入れない設定などもでき
ますが、投稿や固定ページのパーマリンクと競合すると404になったりします。

もしくは、register_post_typeで投稿タイプを定義する際にパーマリンクをコードで設定
します。

    ```decode:true
    register_post_type( 'hoge',
        array(
            "public" => true,
            "sptp_permalink_structure" => "foo/%post_id%"
        )
    );
    ```

## 開発の理由

[Custom Post Type Permalinks](https://torounit.com/plugins/custom-post-type-permalinks/)
というプラグインをすでにリリースしてますが、その機能縮小版のようなプラグインをなぜ
リリースしたかってコトなんですケド。

別に、[Custom Post Type Permalinks](https://torounit.com/plugins/custom-post-type-permalinks/)
の開発・メンテナンスは**止めません**。細々とこれからもやりますよー。

[Custom Post Type Permalinks](https://torounit.com/plugins/custom-post-type-permalinks/)
には、パーマリンクの変更のほかにも、日付アーカイブ、カスタムタクソノミー、いろんな
機能が入ってたりします。

それはそれでいいんですけど、「別に日付アーカイブとか要らないし！」ってときに逆に
面倒だったり。かといって設定項目追加したらそれもそれで訳わからんなぁー、ってことに
なり、とにかくシンプルにカスタム投稿タイプの記事のパーマリンク変更するだけのプラグ
インを作ったということです。

なので、同じようなプラグインですけど方向性が違います。そのため、[Simple Post Type Permalinks](https://wordpress.org/plugins/simple-post-type-permalinks/)
では投稿タイプのスラッグを無視したパーマリンクも設定できるようになってます。

あとは単純に、[Custom Post Type Permalinks](https://torounit.com/plugins/custom-post-type-permalinks/)
を書き直したい欲を満たすためでもあったりします。

PHP 5.3以上でしか動作しません。PHP 5.2だと、ファイルが読まれないようにしてます。

とりあえず、プルリクとか待ってますー！

Github: [https://github.com/torounit/simple-post-type-permalinks](https://github.com/torounit/simple-post-type-permalinks)

## コメント

### 投稿者: You Sanada

- リンク: https://torounit.com/blog/wordpress-%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ae%e3%83%91%e3%83%bc%e3%83%9e%e3%83%aa%e3%83%b3%e3%82%af%e3%82%92%e7%b0%a1%e5%8d%98%e3%81%ab/#comment-5864
- 公開日: 2015-08-27T14:53:00+09:00

はじめまして、こちらのプラグインについて、お知恵を拝借したく書き込みいたしました。

カスタム投稿タイプのURLを

[http://www.ドメイン.jp/test/カスタム投稿のページ名.html](http://www.ドメイン.jp/test/カスタム投稿のページ名.html)

というように、htmlの拡張子付きにURLにしたいのですが、

パーマリンクの設定画面にて「%postname%.html」としますと
 個別ページが404エラーに
なってしまいます。 .htmlを取れば問題なく表示されるのですが、 原因についてもしお分
かりになるようでしたらご教授いただけないでしょうか。 （custom-post-type-permalinks
の方でも試したのですが、同様の症状となりました）

固定ページ等に関しては別の作者様のプラグインで恐縮ですが「.html on PAGES」という
プラグインで拡張子付きで書き出しができておりますので、サーバーの設定の問題等という
わけでは無さそうかな…と思っております。

なにぶんプログラムに疎いため、どういった情報があれば解決の手がかりになるかが分か
りかねてしまうのですが
 もし「ここの設定を確認しろ」等ありましたらお教えいただけ
ますと大変助かります。

ご多忙かと存じますが、ご返信いただけますと大変嬉しく思います。
 どうぞよろしくお願い
いたします。

### 投稿者: Toro\_Unit

- リンク: https://torounit.com/blog/wordpress-%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ae%e3%83%91%e3%83%bc%e3%83%9e%e3%83%aa%e3%83%b3%e3%82%af%e3%82%92%e7%b0%a1%e5%8d%98%e3%81%ab/#comment-5865
- 公開日: 2015-08-27T15:44:00+09:00

使い方などの質問は、WordPressフォーラム（ [https://ja.forums.wordpress.org/](https://ja.forums.wordpress.org/)）
の方で受け付けてます。

申し訳ありませんが、そちらでお願いします。

### 投稿者: You Sanada

- リンク: https://torounit.com/blog/wordpress-%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ae%e3%83%91%e3%83%bc%e3%83%9e%e3%83%aa%e3%83%b3%e3%82%af%e3%82%92%e7%b0%a1%e5%8d%98%e3%81%ab/#comment-5866
- 公開日: 2015-08-27T16:00:00+09:00

ご返信ありがとうございます。大変失礼いたしました。
 フォーラムの方で改めて質問さ
せていただきます。
