カスタム投稿のディレクトリをURL指定された際に表示するページを指定
現在は、ID順でもなく、投稿時間順でもなく、よくわかりません。
どのような表示としたいのかよく分からないので、説明いただけますか?
カスタム投稿タイプの登録を行う register_post_type の has_archive を true として指定しておくと、公開日の降順でのアーカイブ表示となります。
わかりにくくてすいません。
普通の固定ページでしたら、表示設定からフロントページの指定ができますが、カスタム投稿においても、idなどで指定してフロントページを指定できないか、という質問でした。
よろしくお願い致します。
archive-custom.phpを作成すれば、希望通りの動きをするんじゃないでしょうか?
そのページを管理画面から随時編集できるようにするには、工夫が必要になると思いますが。
customディレクトリを作り、.htaccessで、custom以下にアクセスがあった場合、
http://www.example.com/custom/xxx1/
にリダイレクトするように設定してみましたが、URLはあっていますがNotFoundになってしまいました。
ああ、意味がわかりました。
has_archive を trueにしてアーカイブを有効にして、archive-custom.phpをあてるということですね。
register_post_type('custom', array(
'label' => 'カスタム',
'menu_position' => 20,
'public' => true,
'supports' => array(
'title', 'editor','page-attributes','custom-fields'),
'capability_type' => 'page',
'hierarchical' => true,
'has_active' => true
));
この状態で
/custom/にアクセスすると特定のページにリダイレクトされます。
ちょっとテンプレートの問題なのかよくわからないので調査します。
※ 他にもカスタム投稿を設定しているのですが、そちらはhas_activeの設定がなくてもアーカイブページが表示されています。
has_archive を true にしたらWordPress内部のリライトルールを変えないといけないので、「パーマリンク設定」で何も変更しなくてもいいので、「保存」を押してデータベースと .htaccess を更新してみてください
そうでした。
毎回忘れてしまいます。
更新してみましたが、状況は変わらず、でした。
一応解決方法というか、上の階層で
http://www.example.com/custom/
というページを作成し、
http://www.example.com/custom/xxx1/
にmeta jumpでリダイレクトさせたらうまくいったので、(あまり美しい方法ではないですが)とりあえずこれで対処します。
functions.phpで対処できるのではないかと思ったのですが、そういう回答がなかったのでもともとそういう使い方を想定されていないのでしょう。
一番現実的な方法がarciveページを作る、ということで承知しました。
みなさまありがとうございました。