命名のベストプラクティス

プラグイン、テーマ、またはウェブサイトに対応する短いプレフィックスで、投稿タイプの関数と識別子をプレフィックスすることが重要です。

カスタム投稿タイプの識別子は20文字を超えないようにしてください。データベースのpost_type列は現在その長さのVARCHARフィールドです。

将来の互換性を確保するために、識別子としてwp_を使用しないでください — これはWordPressコアによって使用されています。

あなたの識別子があまりにも一般的である場合(例えば:「product」)、それは同じ識別子を使用することを選択した他のプラグインやテーマと衝突する可能性があります。

重複した投稿タイプの識別子を解決することは、衝突している投稿タイプの1つを無効にしない限り不可能です。

URL

カスタム投稿タイプは、サイトのURL構造内で独自のスラッグを取得します。

wporg_productタイプの投稿は、デフォルトで次のURL構造を使用します: http://example.com/wporg_product/%product_name%

  1. 最終的なパーマリンクは: `````http://example.com/wporg_product/wporg-is-awesome````` です。
  2. デフォルトの投稿タイプと同様に、カスタム投稿タイプの編集画面でパーマリンクを確認できます。
  3. <a name="a-custom-slug-for-a-custom-post-type"></a>
  4. ### カスタム投稿タイプのカスタムスラッグ
  5. カスタム投稿タイプのスラッグを設定するには、`````register_post_type()`````引数配列の`````rewrite`````キーにkey =&gt; valueペアを追加するだけです。
  6. 例:
  7. ``````bash
  8. function wporg_custom_post_type() {
  9. register_post_type('wporg_product',
  10. array(
  11. 'labels' => array(
  12. 'name' => __( 'Products', 'textdomain' ),
  13. 'singular_name' => __( 'Product', 'textdomain' ),
  14. ),
  15. 'public' => true,
  16. 'has_archive' => true,
  17. 'rewrite' => array( 'slug' => 'products' ), // my custom slug
  18. )
  19. );
  20. }
  21. add_action('init', 'wporg_custom_post_type');
  22. `

上記は次のURL構造を生成します: http://example.com/products/%product_name%

productsのような一般的なスラッグを使用すると、他のプラグインやテーマと衝突する可能性があるため、コンテンツにより特化したものを使用するようにしてください。

カスタム投稿タイプの識別子とは異なり、重複スラッグの問題は、衝突している投稿タイプの1つのスラッグを変更することで簡単に解決できます。

プラグインの著者が引数にapply_filters()呼び出しを含めている場合、これはregister_post_type()関数を介して送信された引数をオーバーライドすることでプログラム的に行うことができます。