SWELLの場合、アーカイブページはでは記事一覧しか表示されません。

カテゴリーページのように、タイトル下にブログパーツを挿入したい場合は、以下の方法が考えられます。
- 子テーマにテンプレートを編集してコンテンツを追加する
 - SWELLのフックを使ってコンテンツを追加する
 - SWELLのコードを上書きしてコンテンツを追加する
 
本記事ではそのやり方を解説します。
テンプレートを使う場合と、SWELLのコードを上書きする場合の2種類を紹介しています。

アーカイブページにブログパーツを挿入する方法│テンプレートを編集する場合
まずは一般的な挿入方法を解説しまし。
こちらはSWELLのテーマ以外でもできるカスタマイズです。
ブログパーツの作成
SWELLであればブログパーツ、別テーマであれば再利用ブロックなどにコンテンツを作成します。
そしてブログパーツのショートコードもメモしておきましょう。
[blog_parts id="21686"]
Achive.phpのテンプレートの編集
SWELLの場合、投稿記事のアーカイブはhome.php、カスタム投稿タイプはAchive.phpがテンプレートです。
そのテンプレートをローカルにダウンロードして、
コード<div class="p-archiveContent u-mt-40">の上に下記のコードを挿入しましょう。
<?php do_action('swell_custom_archive_hook'); // オリジナルのフックを追加 ?>保存してSWELLの子テーマの同じ場所にテンプレートをアップロードします。
functions.phpの記入
後はCode Snippetsを使って、functions.phpのコードを挿入しましょう。
function swell_add_custom_content_below_archive_title() {
    echo do_shortcode('[blog_parts id="21686"]');
}
add_action('swell_custom_archive_hook', 'swell_add_custom_content_below_archive_title');以上です。
最後にブログパーツが表示されているか確認します。

このカスタマイズはテンプレートにオリジナルのフックを追加して、functins.phpでショートコードを挿入してあげています。
しかしこれだとテンプレートを編集するというデメリットがあります。
しかしSWELLの場合は、様々な場所にフックがあるので、それを利用してタイトル下にコンテンツを挿入してみます。
アーカイブページにブログパーツを挿入する方法│SWELLのコードを上書きする場合
カスタム投稿タイプのアーカイブを表示しているAchive.phpにはコンテンツを追加できるフックがありません。
しかしAchive.phpのタイトル表示のコードを注目してみましょう。
		<?php
			SWELL_Theme::pluggable_parts( 'page_title', [
				'title'     => $archive_title,
				'subtitle'  => $archive_subtitle,
				'has_inner' => true,
			] );
		?>こちらはlib/pluggable_parts/page_parts.phpにあるコードを参照しています。
以下、有料コンテンツです。


