web-dev-qa-db-ja.com

リスティングページを生成するためだけページを作成するのは適切ですか(例:カスタム投稿タイプの場合)。

私は自分自身がリスティングページの「プレースホルダー」としてページを作成しているのに気づきました。

例えば。 「ブログ」と「ポートフォリオ」のページを作成します。どちらもエディタemtpyを持っています。それぞれのリストページにpage-blog.phppage-portfolio.phpを使えるようにするためだけに使っています。それはふさわしくないようですか?もっと良い方法はありますか?

3
JM at Work

私は、'has_archive' => true,をあなたのregister_post_type配列に含め、archive- {posttype} .phpを使ってあなたのカスタム投稿タイプのリストをスタイルすることも考えられます。

5
Daniel Sachs

ページ付けなしのカスタム投稿タイプ(またはその事実に関するその他のデータ)をいくつかリストしている場合にのみ、「プレースホルダ」ページを使用します。これにより、エンドユーザーはタイトルやコンテンツなどを管理できます。紹介文などに使用できます。

また、wp_list_pages()にリストされるという利点もあります。これは、テーマ内の他の場所でナビゲーションに使用している場合に便利です。

しかし、@ Danielが言ったように、ページ付けとフィードを含む本格的なアーカイブを利用したい場合は、has_archive argを選択してください。

明確にするために、単一の投稿とは対照的に、アーカイブには異なるスラッグを使用する傾向があります。

だから例えば。

http://example.com/product/my-single-product/

そしてアーカイブのために。

http://example.com/products/

http://example.com/products/page/2

http://example.com/products/feed/

それのためのコード?

register_post_type( array(
    'rewrite' => array(
        'slug' => 'product', // defaults to post type name
        'with_front' => true, // prepends slug to single posts, default true
        'pages' => true, // support pagination, default true
        'feeds' => true // support feeds, default matches 'has_archive'
     ),

     'has_archive' => 'products' // if bool true, defaults to rewrite slug
) );
1
TheDeadMedic