カスタム投稿タイプって作るのは簡単だけど(プラグイン使用です)、通常の投稿記事並みにあれもこれもやろうとするととてもハードルが高いものなんですね。ただ作っただけだとオモテに出てこないので、それを引っ張り出してくるときにいちいち設定しなければなりません。
今日は1日ガッツリ取り組んで悩んでいました。
というわけで、今日やったことの覚書です。
検索結果にカスタム投稿タイプも含める
function.phpに下記追加
function filter_search($query) { if ($query->is_search) { $query->set('post_type', array('post', 'カスタム投稿名')); }; return $query; }; add_filter('pre_get_posts', 'filter_search');
カスタム投稿もトップの最新記事に含める
1. function.phpに下記追加
function custom_post_add_top( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; if ( $query->is_home() ) { $query->set( 'post_type', array( 'post', 'カスタム投稿名' ) ); return; } } add_action( 'pre_get_posts', 'custom_post_add_top' );
2.index.phpの最新記事表示該当箇所を書き換え
$args = array('post_type' => 'post', 'numberposts' => 10);
を
$args = array('post_type' => array('post', '表示したいカスタム投稿名'), 'numberposts' => 10);
今日はまり込んでいたこと・・・。
プラグイン「Custom Post Type Permalinks」を入れました。
以前入れたときになぜか「有効化するときに1文字分の余分な文字列を・・・」なんたらかんたらとエラーが出たので、少々慎重にインストールしたら何もトラブルなく有効化できました。
何が余計だったのかな。そのエラーのときに入っていたプラグインの影響?
それはさておき。
なぜこのプラグインを入れたかというと、タクソノミーのアーカイブで一覧を出したかったからなんです。ひとつのカスタム投稿タイプで3つほど分類(タクソノミー)を作り、さらにタームがあり、ひとつの投稿でそれぞれの分類から的確なタームを選んで投稿し、さぁ一覧をと思ったら404ページなんです。そのときにはタクソノミーのアーカイブがなくて急遽作りました。分類毎です。結構大変だけど、それぞれのカスタム投稿タイプでサイドバーが異なるので作りました・・・。
このプラグインを入れるとパーマリンクが「投稿タイプ名/タクソノミー名/ターム」というような形にカスタマイズできるんです。なかなかスッキリしていいものです。
だけど、パーマリンクを空更新しても反映されなくて、悶々と数時間。
もう一度カスタム投稿の設定を見直していてひょんなことに気づきました。
Exclude From Search をTrueにしていました。この設定はサイト内の検索に引っかかるようにするという設定です。試しにデフォルトのFalseに戻してみたら、一覧表示されたんです。
思えば、function.phpですでに設定していました。
まぁ、なんにせよ、よかったよかったです。
あとはまっていたことは、左のサイドバーの検索。このカスタマイズでした。
カスタム投稿用のサイドバーにはウィジェットは入れていません。すべてphpを直書きで適応させています。今使っているテーマでこの検索はウィジェットとindexの2種類あって、デザイン的にindexの方がよかったのでphpをコピペしてcssでカスタマイズしました。
それから検索の上の広告ですが、すべて一括で管理できるように各テンプレートを直しました。
あとねー、やりたいことは関連する記事を各個別記事の下にくっつけたいのです。これはまた後日。
この記事へのコメントはありません。