SWELLのアーカイブの記事一覧リストはカスタマイズから変更できます。
しかし特定の投稿記事タイプではカードじゃなくてテキストで表示したいということはないでしょうか?
たとえばアイキャッチ画像を表示したくないお知らせ(カスタム投稿タイプ:news)です。
こちらのアーカイブページだけをSWELLフックを使ってテキスト表示にしてみます。
本記事ではこのカスタマイズ方法を紹介します。
目次
SWELL│特定のアーカイブページの記事一覧リストの表示を変更する方法
やり方は簡単です。
swell_post_list_type_on_archiveのフックを使用します。
前提としてnewsというカスタム投稿タイプを作成して、アーカイブページも存在する前提にします。
functions.phpに以下のコードをいれてください。
function motoki_swell_post_list_type_on_archive( $list_type, $archive_data ) {
// 'news' カスタム投稿タイプのアーカイブページの場合のみ
if ( is_post_type_archive( 'news' ) ) {
// リストタイプを 'simple' に設定
$list_type = 'simple';
}
return $list_type;
}
add_filter( 'swell_post_list_type_on_archive', 'motoki_swell_post_list_type_on_archive', 10, 2 );
あとは確認するだけです。
記事一覧リストの表示形式にしたい場合
記事一覧リストの表示形式にしたい場合は$list_type = 'simple';
の記述を変更するだけです。
記事一覧リスト | 値 |
---|---|
カード型 | card |
リスト型 | list |
リスト型(左右交互) | list2 |
サムネイル型 | thumb |
ブログ型 | big |
テキスト型 | simple |
応用│特定のアーカイブページの記事一覧リストの表示を変更する方法
応用例を紹介します。
投稿ページだけテキストにしたい場合
こちらはhome.phpのテンプレートを上書きできないので、カスタマイズの設定をsimple(テキスト)にした上げます。
あとは投稿ページ以外をcardに設定すれば投稿ページだけテキストの状態ができます。
function motoki_swell_post_list_type_on_home( $list_type, $archive_data ) {
// 固定ページで指定された投稿一覧ページの場合
if ( is_home() ) {
// ホーム(投稿一覧ページ)はリストタイプを 'simple' に設定
$list_type = 'simple';
} else {
// その他のアーカイブページはリストタイプを 'card' に設定
$list_type = 'card';
}
return $list_type;
}
add_filter( 'swell_post_list_type_on_archive', 'motoki_swell_post_list_type_on_home', 10, 2 );
検索結果だけカード表示にしたい場合
たとえばVK Filter Search Proの絞り込み検索でworksというカスタム投稿タイプで検索した場合の指定は以下になります。
function motoki_swell_post_list_type_on_search( $list_type ) {
// 検索結果ページの場合
if ( is_search() ) {
// クエリパラメーターで投稿タイプを直接判定
if ( isset( $_GET['post_type'] ) && $_GET['post_type'] === 'works' ) {
$list_type = 'card'; // worksの場合はcard
} else {
$list_type = 'simple'; // それ以外はsimple
}
}
return $list_type;
}
add_filter( 'swell_post_list_type_on_search', 'motoki_swell_post_list_type_on_search' );
まとめ
このようにカスタマイズで設定されているけど、特定の投稿タイプでは変更したいというカスタマイズにはフックが便利です。
気になった方はぜひ、参考にしてください。