命名のベストプラクティス
プラグイン、テーマ、またはウェブサイトに対応する短いプレフィックスで、投稿タイプの関数と識別子をプレフィックスすることが重要です。
カスタム投稿タイプの識別子は20文字を超えないようにしてください。データベースのpost_type
列は現在その長さのVARCHARフィールドです。
将来の互換性を確保するために、識別子としてwp_を使用しないでください — これはWordPressコアによって使用されています。
あなたの識別子があまりにも一般的である場合(例えば:「product
」)、それは同じ識別子を使用することを選択した他のプラグインやテーマと衝突する可能性があります。
重複した投稿タイプの識別子を解決することは、衝突している投稿タイプの1つを無効にしない限り不可能です。
URL
カスタム投稿タイプは、サイトのURL構造内で独自のスラッグを取得します。
wporg_product
タイプの投稿は、デフォルトで次のURL構造を使用します: http://example.com/wporg_product/%product_name%
。
最終的なパーマリンクは: `````http://example.com/wporg_product/wporg-is-awesome````` です。
デフォルトの投稿タイプと同様に、カスタム投稿タイプの編集画面でパーマリンクを確認できます。
<a name="a-custom-slug-for-a-custom-post-type"></a>
### カスタム投稿タイプのカスタムスラッグ
カスタム投稿タイプのスラッグを設定するには、`````register_post_type()`````引数配列の`````rewrite`````キーにkey => valueペアを追加するだけです。
例:
``````bash
function wporg_custom_post_type() {
register_post_type('wporg_product',
array(
'labels' => array(
'name' => __( 'Products', 'textdomain' ),
'singular_name' => __( 'Product', 'textdomain' ),
),
'public' => true,
'has_archive' => true,
'rewrite' => array( 'slug' => 'products' ), // my custom slug
)
);
}
add_action('init', 'wporg_custom_post_type');
`
上記は次のURL構造を生成します: http://example.com/products/%product_name%
products
のような一般的なスラッグを使用すると、他のプラグインやテーマと衝突する可能性があるため、コンテンツにより特化したものを使用するようにしてください。
カスタム投稿タイプの識別子とは異なり、重複スラッグの問題は、衝突している投稿タイプの1つのスラッグを変更することで簡単に解決できます。
プラグインの著者が引数にapply_filters()
呼び出しを含めている場合、これはregister_post_type()
関数を介して送信された引数をオーバーライドすることでプログラム的に行うことができます。