Simple Post Type Permalinks というプラグインをリリースしました。
名前通り、投稿タイプごとにパーマリンクを設定できるプラグインです。どこかで聞いたことのあるような名前のプラグインですが、それとはまた別物です。
できること
- カスタム投稿タイプごとにパーマリンクを設定。
%post_id%
と%postname%
が使用可能。 - register_post_typeで、パーマリンク構造の定義。
の2種類です。
できないこと
- タクソノミー(カテゴリーやタグを含む)等には対応してません。
- 日付、著者などのタグも使えません。
%post_id%
と%postname%
だけしか使えません。- アーカイブのパーマリンクを自動的に追加しません。
とにかく、シングルページのパーマリンクのカスタマイズだけが可能です。
使い方
管理画面は、こんな感じです。
例のプラグインと同じく「パーマリンク設定」のページの下にパーマリンク設定のセクションがあります。そこから、適当にパーマリンクを設定して下さい。投稿タイプのスラッグを入れない設定などもできますが、投稿や固定ページのパーマリンクと競合すると404になったりします。
もしくは、register_post_typeで投稿タイプを定義する際にパーマリンクをコードで設定します。
register_post_type( 'hoge', array( "public" => true, "sptp_permalink_structure" => "foo/%post_id%" ) );
開発の理由
Custom Post Type Permalinksというプラグインをすでにリリースしてますが、その機能縮小版のようなプラグインをなぜリリースしたかってコトなんですケド。
別に、Custom Post Type Permalinksの開発・メンテナンスは止めません。細々とこれからもやりますよー。
Custom Post Type Permalinksには、パーマリンクの変更のほかにも、日付アーカイブ、カスタムタクソノミー、いろんな機能が入ってたりします。
それはそれでいいんですけど、「別に日付アーカイブとか要らないし!」ってときに逆に面倒だったり。かといって設定項目追加したらそれもそれで訳わからんなぁー、ってことになり、とにかくシンプルにカスタム投稿タイプの記事のパーマリンク変更するだけのプラグインを作ったということです。
なので、同じようなプラグインですけど方向性が違います。そのため、Simple Post Type Permalinksでは投稿タイプのスラッグを無視したパーマリンクも設定できるようになってます。
あとは単純に、Custom Post Type Permalinksを書き直したい欲を満たすためでもあったりします。
PHP 5.3以上でしか動作しません。PHP 5.2だと、ファイルが読まれないようにしてます。
とりあえず、プルリクとか待ってますー!
Github: https://github.com/torounit/simple-post-type-permalinks
Comments
“WordPress のカスタム投稿タイプのパーマリンクを簡単に変更できるようになるプラグイン「Simple Post Type Permalinks」作った。” への3件のフィードバック
はじめまして、こちらのプラグインについて、お知恵を拝借したく書き込みいたしました。
カスタム投稿タイプのURLを
http://www.ドメイン.jp/test/カスタム投稿のページ名.html
というように、htmlの拡張子付きにURLにしたいのですが、
パーマリンクの設定画面にて「%postname%.html」としますと
個別ページが404エラーになってしまいます。
.htmlを取れば問題なく表示されるのですが、
原因についてもしお分かりになるようでしたらご教授いただけないでしょうか。
(custom-post-type-permalinks の方でも試したのですが、同様の症状となりました)
固定ページ等に関しては別の作者様のプラグインで恐縮ですが「.html on PAGES」というプラグインで拡張子付きで書き出しができておりますので、サーバーの設定の問題等というわけでは無さそうかな…と思っております。
なにぶんプログラムに疎いため、どういった情報があれば解決の手がかりになるかが分かりかねてしまうのですが
もし「ここの設定を確認しろ」等ありましたらお教えいただけますと大変助かります。
ご多忙かと存じますが、ご返信いただけますと大変嬉しく思います。
どうぞよろしくお願いいたします。
使い方などの質問は、WordPressフォーラム( https://ja.forums.wordpress.org/ )の方で受け付けてます。
申し訳ありませんが、そちらでお願いします。
ご返信ありがとうございます。大変失礼いたしました。
フォーラムの方で改めて質問させていただきます。