SWELLでカスタマイズをするときに欠かせないのがアクションフックとフィルターフックです。
開発者が事前に、指定箇所が変更ができるようにフックをたくさん仕込んでおり、それを利用して上書きしてSWELLをカスタマイズできます。
WordPressのカスタマイズでよく使うので、一度SWELLのフックを全て洗い出してみました。
ちなみにSWELLはフックだけでなく関数も上書きできます。
詳細は下記に記事にて
アクションフック・フィルターフックの使い方
先に簡潔にアクションフック・フィルターフックについて説明します。
アクションフック | フィルターフック |
---|---|
特定のイベントが発生したときに何かを実行するために使用 | データを加工するために使用し、加工されたデータを返却する |
例: 投稿が公開されたときにメールを送信する | 例: 投稿の内容を加工する |
関数: do_action() でトリガー、add_action() で登録 | 関数: apply_filters() でトリガー、add_filter() で登録 |
戻り値: なし | 戻り値: 加工されたデータ |
アクションフック・フィルターフックの書き方の例
まず下記の場所にアクションフックまたはフィルターフックを記載したPHPのコードを記載します。
WordPressの管理画面 > 外観 > テーマファイルエディター > functions.php
アクションフック例
function motoki_example1(){
echo '<!-- テスト! -->';
}
add_action( 'wp_head', 'motoki_example1',999 );
フィルターフック例
function motoki_example2($tmp){
$tmp = '<!-- テスト! -->';
return $tmp;
}
add_filter( 'wp_head', 'motoki_example2',999 );
アクションフックとフィルターフック違いとして実行するタイミングが違うという点があります。
そしてフィルターフックには値を受け渡しできるという利点もあります。
SWELLのアクションフック・フィルターフック79個全まとめ
まずはSWELLで設定されているアクションフック・フィルターフックを全て調べてリスト化してみました。
SWELLのフックの調べ方
SWELLのフックを調べるのは簡単です。
String Locatorというプラグインを使って、テーマ内のコードを検索します。
正規表現も使うことができるので非常に便利なのでおすすめです。
今回は検索をかけてSWELL用に仕込まれているフックをすべて洗い出してみました。
以下、検索で洗い出したSWELLのフックをまとめています。
SWELLのアクションフック 全4個
SWELLのアクションフックはdo_action( 'swell_
と記載されています。
フック名 | ファイルの場所 |
---|---|
swell_after_copyright | wp-content/themes/swell/parts/footer/footer_contents.php |
swell_inner_main_visual | wp-content/themes/swell/parts/top/main_visual.php |
swell_before_post_head | wp-content/themes/swell/single.php |
swell_before_post_thumb | wp-content/themes/swell/single.php |
SWELLのフィルターフック 全75個
SWELLのフィルターフックはapply_filters( 'swell
と記載されています。
フック名 | ファイルの場所 |
---|---|
swell_post_content_class | wp-content/themes/swell/tmp/front.php |
swell_post_list_type_on_archive | wp-content/themes/swell/archive.php |
swell_post_list_type_on_term | wp-content/themes/swell/archive-term.php |
swell_breadcrumb_list_data | wp-content/themes/swell/parts/breadcrumb.php |
swell_mv_single_lazy_off | wp-content/themes/swell/parts/archive/term_head.php |
swell_term_thumbnail_lazy_off | wp-content/themes/swell/parts/archive/term_head.php |
swell_post_slider_lazy_off | wp-content/themes/swell/parts/top/post_slider.php |
swell_infobar_data | wp-content/themes/swell/parts/header/info_bar.php |
swell_pickup_post_args | wp-content/themes/swell/parts/post_list/loop_by_slider.php |
swell_post_list_404_text | wp-content/themes/swell/parts/post_list/loop_main.php |
swell_posts_404_text | wp-content/themes/swell/parts/post_list/loop_sub.php |
swell_twitter_to_x | wp-content/themes/swell/parts/icon_list.php |
swell_top_area_lazy_off | wp-content/themes/swell/parts/top_title_area.php |
swell_sns_cta_message | wp-content/themes/swell/parts/single/sns_cta.php |
swell_related_post_maxnum | wp-content/themes/swell/parts/single/related_post_list.php |
swell_related_post_args | wp-content/themes/swell/parts/single/related_post_list.php |
swell_related_post_404_text | wp-content/themes/swell/parts/single/related_post_list.php |
swell_post_list_type_on_search | wp-content/themes/swell/search.php |
swell_post_list_cat_data | wp-content/themes/swell/classes/SWELL_THEME/Parts/Post_List.php |
swell_json_ld__organization | wp-content/themes/swell/classes/Json_Ld.php |
swell_json_ld__website | wp-content/themes/swell/classes/Json_Ld.php |
swell_json_ld__webpage | wp-content/themes/swell/classes/Json_Ld.php |
swell_json_ld__collectionpage | wp-content/themes/swell/classes/Json_Ld.php |
swell_json_ld__article | wp-content/themes/swell/classes/Json_Ld.php |
swell_json_ld__author | wp-content/themes/swell/classes/Json_Ld.php |
swell_json_ld | wp-content/themes/swell/classes/Json_Ld.php |
swell_get_the_term_links | wp-content/themes/swell/classes/SWELL_FUNC.php |
swell_parts_catchphrase | wp-content/themes/swell/classes/SWELL_PARTS.php |
swell_parts_head_logo | wp-content/themes/swell/classes/SWELL_PARTS.php |
swell_parts_page_title | wp-content/themes/swell/classes/SWELL_PARTS.php |
swell_parts_term_title | wp-content/themes/swell/classes/SWELL_PARTS.php |
swell_post_thumbnail_lazy_off | wp-content/themes/swell/classes/SWELL_PARTS.php |
swell_parts_post_thumbnail | wp-content/themes/swell/classes/SWELL_PARTS.php |
swell_parts_scroll_arrow | wp-content/themes/swell/classes/SWELL_PARTS.php |
swell_show_term_navigation | wp-content/themes/swell/classes/SWELL_PARTS.php |
swell_do_blog_parts | wp-content/themes/swell/classes/Utility/Parts.php |
swell_frame_class | wp-content/themes/swell/classes/Utility/Get.php |
swell_get_archive_data | wp-content/themes/swell/classes/Utility/Get.php |
swell_get_the_terms_data | wp-content/themes/swell/classes/Utility/Get.php |
swell_get_sns_cta_data | wp-content/themes/swell/classes/Utility/Get.php |
swell_get_search_title | wp-content/themes/swell/classes/Utility/Get.php |
swell_get_tax_of_post_type | wp-content/themes/swell/classes/Utility/Get.php |
swell_get_search_terms_status | wp-content/themes/swell/classes/Utility/Get.php |
swell_is_show_ttltop | wp-content/themes/swell/classes/Utility/Status.php |
swell_is_show_index | wp-content/themes/swell/classes/Utility/Status.php |
swell_is_show_toc_ad | wp-content/themes/swell/classes/Utility/Status.php |
swell_is_show_sidebar | wp-content/themes/swell/classes/Utility/Status.php |
swell_is_show_comments | wp-content/themes/swell/classes/Utility/Status.php |
swell_is_show_pickup_banner | wp-content/themes/swell/classes/Utility/Status.php |
swell_is_show_page_links | wp-content/themes/swell/classes/Utility/Status.php |
swell_is_separate_css | wp-content/themes/swell/classes/Utility/Status.php |
swell_root_attrs | wp-content/themes/swell/classes/Utility/Attrs.php |
swell_body_attrs | wp-content/themes/swell/classes/Utility/Attrs.php |
swell_content_attrs | wp-content/themes/swell/classes/Utility/Attrs.php |
swell_lp_content_attrs | wp-content/themes/swell/classes/Utility/Attrs.php |
swell_update_json_name | wp-content/themes/swell/classes/Utility/Others.php |
swell_remove_url_to_card | wp-content/themes/swell/lib/content_filter.php |
swell_delay_js_prevent_pages | wp-content/themes/swell/lib/rewrite_html.php |
swell_delay_js_list | wp-content/themes/swell/lib/rewrite_html.php |
swell_table_scroll_hint | wp-content/themes/swell/lib/gutenberg/render_hook/core_table.php |
swell_blocks_rss_cache_time | wp-content/themes/swell/lib/gutenberg/block/rss.php |
swell_side_meta_screens | wp-content/themes/swell/lib/post_meta/meta_side.php |
swell_code_meta_screens | wp-content/themes/swell/lib/post_meta/meta_code.php |
swell_hide_fse_blocks | wp-content/themes/swell/lib/load/block_assets.php |
swell_custom_formats | wp-content/themes/swell/lib/load/admin.php |
swell_custom_format_sets | wp-content/themes/swell/lib/load/admin.php |
swell_toc_target | wp-content/themes/swell/lib/load/front.php |
swell_term_meta_screens | wp-content/themes/swell/lib/term_meta.php |
swell_head_logo | wp-content/themes/swell/lib/pluggable_parts/header_parts.php |
swell_head_logo_top | wp-content/themes/swell/lib/pluggable_parts/header_parts.php |
swell_head_logo_sizes | wp-content/themes/swell/lib/pluggable_parts/header_parts.php |
SWELLのアクションフックの解説
まずは数少ないSWELLのアクションフックから解説していきます。
swell_after_copyright
このフックは、ウェブサイトのフッターにあるコピーライト情報の直後に、追加のコンテンツや情報を挿入するために使用されます。
このフックを利用することで、コピーライト情報の後に任意のテキスト、リンク、画像などを簡単に追加できます。
add_action( 'swell_after_copyright', function() {
echo '<div>© 2024 MOTOKI LLC. All Rights Reserved. | <a href="https://example.com/privacy-policy">Privacy Policy</a></div>';
});
swell_inner_main_visual
このフックは、メインビジュアルの内部にカスタムコンテンツを挿入するために使用されます。
このフックを利用することで、メインビジュアルの中に任意のテキスト、画像、スライダーなどを簡単に追加できます。
また$post_id
パラメータを利用することで、特定の投稿に対してのみカスタムテキストを表示することも可能です。
以下の状態は表示されないので注意!
- メインビジュアルが表示しないの場合
- メインビジュアルの高さがウィンドウにフィットさせるの場合
テキストを表示したい場合
add_action( 'swell_inner_main_visual', function() {
echo '<div class="custom-text">WordPress専門のWeb制作会社です!</div>';
});
ブログパーツを表示したい場合
add_action( 'swell_inner_main_visual', function() {
echo do_shortcode('');
});
swell_before_post_head
このフックは、投稿またはページのヘッダー(タイトルやメタ情報のセクション)が表示される直前に使用されます
これを利用して、投稿のヘッドセクションの前にカスタムコンテンツや広告、注意書きなどを挿入できます。
$post_id
パラメータを利用することで、特定の投稿に対してのみカスタムテキストを表示することも可能です。
add_action( 'swell_before_post_head', function( $post_id ) {
echo '<div class="custom-text">これは投稿ヘッダーの前のカスタム テキストです。投稿ID: ' . esc_html( $post_id ) . '</div>';
});
上記のコードは投稿のヘッダーの前に「これは投稿ヘッダーの前のカスタム テキストです。投稿ID: [投稿ID]」というカスタムテキストが追加されます。
swell_before_post_thumb
このフックは、投稿またはページのアイキャッチ画像が表示される直前に使用されます。
これを利用して、アイキャッチ画像の前にカスタムコンテンツや広告、注釈などを挿入できます。
add_action( 'swell_before_post_thumb', function( $post_id ) {
echo '<div class="custom-text">これは投稿のサムネイルの前にあるカスタム テキストです。投稿ID: ' . esc_html( $post_id ) . '</div>';
});
上記のコードは投稿のヘッダーの前に「これは投稿のサムネイルの前にあるカスタム テキストです。投稿ID: [投稿ID]」というカスタムテキストが追加されます。
SWELLのフィルターフックの解説
続いてSWELLのフィルターフックの解説です。
かなりボリュームがあります。
構造化データ関連
swell_json_ld
このフィルターフックは、SWELL テーマで生成されるすべての JSON-LD データを操作するために使用されます。
デフォルトでは、WebSite、WebPage、Article、Organization、BreadcrumbList などの JSON-LD データが生成されますが、このフックを利用して追加のデータを追加したり、既存のデータを変更したりすることができます。
add_filter( 'swell_json_ld', function( $json_lds ) {
// カスタムデータを追加
$json_lds['CustomData'] = [
'@type' => 'Thing',
'name' => 'Custom Name',
'description' => 'This is a custom description.',
];
return $json_lds;
} );
swell_json_ld__article
このフィルターフックは、SWELL テーマで Article の JSON-LD データを出力する際に使用されます。
デフォルトでは、現在の投稿の基本情報に基づいて Article の情報が生成されますが、このフックを利用して Article 情報をカスタマイズすることができます。
add_filter( 'swell_json_ld__article', function( $data, $post_id ) {
// カスタムフィールドから追加情報を取得
$additional_info = get_field( 'additional_info', $post_id );
// 追加情報があればデータに追加
if ( $additional_info ) {
$data['additionalProperty'] = [
'@type' => 'PropertyValue',
'name' => 'Additional Information',
'value' => $additional_info,
];
}
return $data;
}, 10, 2 );
swell_json_ld__author
このフィルターフックは、SWELL テーマで Author の JSON-LD データを出力する際に使用されます。
デフォルトでは、現在の著者の基本情報に基づいて Author の情報が生成されますが、このフックを利用して Author 情報をカスタマイズすることができます。
add_filter( 'swell_json_ld__author', function( $data, $author_id ) {
// カスタムフィールドから追加情報を取得
$additional_info = get_field( 'additional_info', 'user_' . $author_id );
// 追加情報があればデータに追加
if ( $additional_info ) {
$data['additionalProperty'] = [
'@type' => 'PropertyValue',
'name' => 'Additional Information',
'value' => $additional_info,
];
}
return $data;
}, 10, 2 );
swell_json_ld__collectionpage
このフィルターフックは、SWELL テーマで CollectionPage の JSON-LD データを出力する際に使用されます。
デフォルトでは、現在のページの基本情報に基づいて CollectionPage の情報が生成されますが、このフックを利用して CollectionPage 情報をカスタマイズすることができます。
add_filter( 'swell_json_ld__collectionpage', function( $data ) {
// カスタムフィールドから追加情報を取得
$additional_info = get_field( 'additional_info', get_queried_object_id() );
// 追加情報があればデータに追加
if ( $additional_info ) {
$data['additionalProperty'] = [
'@type' => 'PropertyValue',
'name' => 'Additional Information',
'value' => $additional_info,
];
}
return $data;
} );
swell_json_ld__organization
このフィルターフックは、SWELL テーマで組織 (Organization) の JSON-LD データを出力する際に使用されます。
デフォルトでは、サイトの設定に基づいて組織の情報が生成されますが、このフックを利用して組織情報をカスタマイズすることができます。
add_filter( 'swell_json_ld__organization', function( $data ) {
// カスタムフィールドから追加情報を取得
$additional_info = get_field( 'additional_info', 'option' );
// 追加情報があればデータに追加
if ( $additional_info ) {
$data['additionalProperty'] = [
'@type' => 'PropertyValue',
'name' => 'Additional Information',
'value' => $additional_info,
];
}
return $data;
} );
swell_json_ld__webpage
このフィルターフックは、SWELL テーマで WebPage の JSON-LD データを出力する際に使用されます。
デフォルトでは、現在のページの基本情報に基づいて WebPage の情報が生成されますが、このフックを利用して WebPage 情報をカスタマイズすることができます。
add_filter( 'swell_json_ld__webpage', function( $data ) {
// カスタムフィールドから追加情報を取得
$additional_info = get_field( 'additional_info', get_the_ID() );
// 追加情報があればデータに追加
if ( $additional_info ) {
$data['additionalProperty'] = [
'@type' => 'PropertyValue',
'name' => 'Additional Information',
'value' => $additional_info,
];
}
return $data;
} );
swell_json_ld__website
このフィルターフックは、SWELL テーマで WebSite の JSON-LD データを出力する際に使用されます。
デフォルトでは、サイトの基本情報に基づいて WebSite の情報が生成されますが、このフックを利用して WebSite 情報をカスタマイズすることができます。
add_filter( 'swell_json_ld__website', function( $data ) {
// カスタムフィールドから追加情報を取得
$additional_info = get_field( 'additional_info', 'option' );
// 追加情報があればデータに追加
if ( $additional_info ) {
$data['additionalProperty'] = [
'@type' => 'PropertyValue',
'name' => 'Additional Information',
'value' => $additional_info,
];
}
return $data;
} );
画像関連
swell_mv_single_lazy_off
このフィルターフックは、SWELL テーマでの投稿記事やメインビジュアル(スライダー)の画像の遅延読み込みをオフにするために使用されます。
これを利用して、メインビジュアルの画像の遅延読み込みを無効化することができます。
add_filter( 'swell_mv_single_lazy_off', function( $is_lazy_off ) {
// メインビジュアルの画像の遅延読み込みをオフにする
$is_lazy_off = true;
return $is_lazy_off;
});
swell_post_slider_lazy_off
このフィルターフックは、SWELL テーマでのポストスライダーの背景画像の遅延読み込みをオフにするために使用されます。
これを利用して、ポストスライダーの背景画像の遅延読み込みを無効化することができます。
add_filter( 'swell_post_slider_lazy_off', function( $is_lazy_off ) {
// ポストスライダーの背景画像の遅延読み込みをオフにする
$is_lazy_off = true;
return $is_lazy_off;
});
swell_post_thumbnail_lazy_off
このフィルターフックは、SWELL テーマ内で定義されている SWELL_PARTS::post_thumbnail
メソッド内で使用されます。このメソッドは、投稿のアイキャッチ画像を取得し、表示するために使用されます。
swell_post_thumbnail_lazy_off
フィルターフックを使用することで、アイキャッチ画像の遅延読み込み(lazy loading)の動作をカスタマイズすることができます。
add_filter( 'swell_post_thumbnail_lazy_off', '__return_true' );
swell_term_thumbnail_lazy_off
このフィルターフックは、SWELL テーマでのタームアーカイブページに表示されるヘッド部分の画像の遅延読み込みをオフにするために使用されます。
これを利用して、特定の条件下で画像の遅延読み込みを無効化することができます。
add_filter( 'swell_mv_single_lazy_off', function( $is_lazy_off ) {
// 特定のタームIDの場合
if ( is_tax( 'カスタムタクソノミー', '特定のタームスラッグ' ) ) {
// 遅延読み込みをオフにする
$is_lazy_off = true;
}
return $is_lazy_off;
});
swell_top_area_lazy_off
このフィルターフックは、SWELL テーマでのトップエリア(タイトルエリア)の背景画像の遅延読み込み(lazy loading)を制御するために使用されます。
デフォルトでは、背景画像は遅延読み込みが有効になっていますが、このフックを利用して遅延読み込みを無効化することができます。
add_filter( 'swell_top_area_lazy_off', function( $value ) {
// トップエリアの背景画像の遅延読み込みを無効化
return true;
});
swell_parts_post_thumbnail
このフィルターフックは、SWELL テーマで投稿のアイキャッチ画像を取得する際に使用されます。このフックを利用することで、アイキャッチ画像のHTML構造や属性をカスタマイズすることができます。
add_filter( 'swell_parts_post_thumbnail', function( $html, $post_id, $is_youtube ) {
// カスタム投稿タイプ「news」の場合、アイキャッチ画像を非表示にする
if ( get_post_type( $post_id ) === 'news' ) {
return '';
}
// それ以外の場合は通常通りアイキャッチ画像を表示
return $html;
}, 10, 3 );
文言・テキスト関連
swell_searchform_placeholder
このフィルターフックは、SWELL テーマでの検索フォームのプレースホルダーテキストを変更するために使用されます。
これを利用して、検索フォームのプレースホルダーに表示されるテキストを動的に変更することができます。
add_filter( 'swell_searchform_placeholder', function( $placeholder ) {
// プレースホルダーテキストをカスタマイズ
$placeholder = __( '記事を検索する', 'swell' );
return $placeholder;
});
swell_breadcrumb_list_data
このフィルターフックは、SWELL テーマでのパンくずリストのデータを変更するために使用されます。
これを利用して、パンくずリストに表示される項目を動的に変更することができます。
add_filter( 'swell_breadcrumb_list_data', function( $list_data ) {
// 特定のカテゴリーのアーカイブページの場合
if ( is_category( '特定のカテゴリースラッグ' ) ) {
// パンくずリストのデータをカスタマイズ
$list_data[] = [
'url' => home_url( '/特定のページ/' ),
'name' => '特定のページ',
];
}
return $list_data;
});
swell_post_list_404_text
このフィルターフックは、SWELL テーマでのメインループ内の投稿リストにおいて、記事が見つからなかった場合に表示されるテキストを変更するために使用されます。
これを利用して、404メッセージの内容を動的に変更することができます。
add_filter( 'swell_post_list_404_text', function( $text ) {
// カスタマイズした404メッセージ
$custom_message = '申し訳ございません。お探しの記事は見つかりませんでした。';
// フィルターを通してカスタマイズしたメッセージを返す
return '<p>' . esc_html( $custom_message ) . '</p>';
});
swell_posts_404_text
このフィルターフックは、SWELL テーマでサブループの投稿リストを出力する際に、記事が見つからなかった場合に表示されるテキストをカスタマイズするために使用されます。
デフォルトのテキストは「記事が見つかりませんでした。」ですが、このフックを利用してテキストを変更することができます。
add_filter( 'swell_posts_404_text', function( $text ) {
return '<p>ご指定の条件に一致する記事はありませんでした。</p>';
});
swell_related_post_404_text
このフィルターフックは、SWELL テーマで関連記事を表示する際に、関連する記事が見つからなかった場合に表示されるテキストをカスタマイズするために使用されます。
デフォルトのテキストは「関連する記事はまだ見つかりませんでした。」ですが、このフックを利用してテキストを変更することができます。
add_filter( 'swell_related_post_404_text', function( $text ) {
return '<p>関連記事はありません。</p>';
});
swell_sns_cta_message
このフィルターフックは、SWELL テーマで記事の下部に表示される SNS の呼びかけメッセージ(CTA)をカスタマイズするために使用されます。
デフォルトでは、”この記事が気に入ったらいいね または フォローしてね!” のようなメッセージが表示されますが、このフックを利用してメッセージの内容を変更することができます。
add_filter( 'swell_sns_cta_message', function( $cta_message ) {
// カスタマイズしたメッセージを返す
return '<br><i class="icon-thumb_up"></i> 記事を楽しんでいただけたら、シェアしてください!';
});
swell_parts_catchphrase
このフィルターフックは、SWELL テーマで表示されるキャッチフレーズを操作するために使用されます。
デフォルトでは、テーマのカスタマイズ設定で設定されたキャッチフレーズが表示されますが、このフックを利用してキャッチフレーズの内容を動的に変更したり、追加のマークアップを追加したりすることができます。
add_filter( 'swell_parts_catchphrase', function( $catchphrase ) {
// 追加したいテキスト
$additional_text = ' - Welcome to Our Site!';
// キャッチフレーズにテキストを追加
$catchphrase .= $additional_text;
return $catchphrase;
} );
swell_parts_page_title
このフィルターフックは、SWELL テーマで表示されるページタイトルを操作するために使用されます。
デフォルトでは、ページや投稿のタイトルが表示されますが、このフックを利用してタイトルの内容を動的に変更したり、追加のマークアップを追加したりすることができます。
add_filter( 'swell_parts_page_title', function( $title_html, $page_id ) {
// 追加したいテキスト
$additional_text = ' - Custom Text';
// タイトルにテキストを追加
$title_html .= $additional_text;
return $title_html;
}, 10, 2 );
swell_parts_term_title
このフィルターフックは、SWELL テーマで表示されるターム(カテゴリーやタグなど)のタイトルを操作するために使用されます。
デフォルトでは、タームの名前が表示されますが、このフックを利用してタイトルの内容を動的に変更したり、追加のマークアップを追加したりすることができます。
add_filter( 'swell_parts_term_title', function( $title_html, $term_id ) {
// 追加したいテキスト
$additional_text = ' - Custom Text';
// タイトルにテキストを追加
$title_html .= $additional_text;
return $title_html;
}, 10, 2 );
デザイン・表示設定関連
swell_body_attrs
このフィルターフックは、SWELL テーマで <body>
タグに追加する HTML 属性をカスタマイズするために使用されます。
デフォルトでは、この部分には PJAX 対応を示す data-barba="wrapper"
属性が含まれる場合がありますが、フィルターフックを利用して他の属性を追加したり、既存の属性を変更したりすることができます。
add_filter( 'swell_body_attrs', function( $attrs ) {
return $attrs . ' data-custom-attr="value"'; // カスタム属性を追加
} );
swell_content_attrs
このフィルターフックは、SWELL テーマでメインコンテンツエリア (#content
) に追加する HTML 属性をカスタマイズするために使用されます。
デフォルトでは、この部分には現在の投稿の ID を示す data-postid
属性が含まれますが、フィルターフックを利用して他の属性を追加したり、既存の属性を変更したりすることができます。
add_filter( 'swell_content_attrs', function( $attrs ) {
return $attrs . ' data-custom-attr="value"'; // カスタム属性を追加
} );
swell_frame_class
このフィルターフックは、SWELL テーマでフレームのクラスを取得する際に使用されます。
デフォルトでは、コンテンツのフレーム設定や表示範囲などに基づいてクラス名が決定されますが、このフックを利用してクラス名をカスタマイズすることができます。
add_filter( 'swell_frame_class', function( $frame_class ) {
// 追加したいクラス名を設定
$additional_class = 'my-custom-frame-class';
// クラス名を追加
$frame_class .= ' ' . $additional_class;
return $frame_class;
} );
swell_head_logo
このフィルターフックは、SWELL テーマ内で定義されている swl_parts__head_logo
関数内で使用されます。
この関数は、ヘッダーに表示されるロゴのURLを指定するために使用されます。
swell_head_logo
フィルターフックを使用することで、ヘッダーロゴのURLをカスタマイズすることができます。
add_filter( 'swell_head_logo', function( $logo_url ) {
// カスタムロゴURLを指定する
return 'https://example.com/path/to/custom-logo.png';
} );
swell_head_logo_sizes
このフィルターフックは、SWELL テーマ内で定義されている swl_parts__head_logo
関数内で使用されます。
この関数は、ヘッダーに表示されるロゴの画像サイズを指定するために使用されます。
swell_head_logo_sizes
フィルターフックを使用することで、ヘッダーロゴの画像サイズをカスタマイズすることができます。
add_filter( 'swell_head_logo_sizes', function( $sizes ) {
// カスタム画像サイズを指定する
return '(max-width: 600px) 50vw, 300px';
} );
swell_head_logo_top
このフィルターフックは、SWELL テーマ内で定義されている swl_parts__head_logo
関数内で使用されます。
この関数は、トップページのヒーローヘッダーを利用する場合に、ヘッダーの上部に表示されるロゴのURLを指定するために使用されます。
swell_head_logo_top
フィルターフックを使用することで、トップページのヘッダーロゴのURLをカスタマイズすることができます。
add_filter( 'swell_head_logo_top', function( $logo_top_url ) {
// カスタムロゴURLを指定する
return 'https://example.com/path/to/custom-logo-top.png';
} );
swell_get_sns_cta_data
このフィルターフックは、SWELL テーマ内で定義されている SWELL_Theme\Utility\Get::get_sns_cta_data
メソッド内で使用されます。
このメソッドは、SNSのCTA(コール・トゥ・アクション)に関するデータを取得するために使用されます。swell_get_sns_cta_data
フィルターフックを使用することで、SNSのCTAに関するデータをカスタマイズすることができます。
add_filter( 'swell_get_sns_cta_data', function( $data ) {
// Twitterのフォローボタンを非表示にする
$data['tw_id'] = '';
// FacebookのいいねボックスのURLを変更する
$data['fb_url'] = 'https://www.facebook.com/yourpage';
// InstagramのフォローボタンのIDを変更する
$data['insta_id'] = 'yourinstagramid';
return $data;
});
swell_is_show_comments
このフィルターフックは、SWELL テーマで投稿ページにコメントセクションを表示するかどうかを判定するために使用されます。
コメントが許可されているか、コメントが存在する場合にコメントセクションが表示されます。
また、投稿のメタデータやテーマの設定によって表示を制御することもできます。
add_filter( 'swell_is_show_comments', '__return_false' );
swell_is_show_index
このフィルターフックは、SWELL テーマで投稿ページや固定ページに目次を表示するかどうかを判定するために使用されます。
目次は、ページ内の見出しを自動的に収集してリスト形式で表示する機能です。
このフィルターフックを使用することで、特定の条件下で目次の表示を制御することができます。
add_filter( 'swell_is_show_index', function( $is_show ) {
if ( is_single() && has_category( '特定のカテゴリー', get_the_ID() ) ) {
return true; // 特定のカテゴリーの投稿ページで目次を表示
}
return $is_show; // それ以外のページはデフォルトの設定に従う
} );
swell_is_show_page_links
このフィルターフックは、SWELL テーマで投稿ページの前の記事・次の記事リンクを表示するかどうかを判定するために使用されます。
この機能を有効にすると、投稿ページの下部に前の記事と次の記事へのリンクが表示されます。
add_filter( 'swell_is_show_page_links', '__return_true' );
swell_is_show_pickup_banner
このフィルターフックは、SWELL テーマでピックアップバナーを表示するかどうかを判定するために使用されます。
この機能を有効にすると、サイトのトップページや指定されたページの上部にピックアップバナーが表示されます。
add_filter( 'swell_is_show_pickup_banner', '__return_true' );
swell_is_show_sidebar
このフィルターフックは、SWELL テーマで各ページにサイドバーを表示するかどうかを判定するために使用されます。
トップページ、LP (ランディングページ)、通常のページ、投稿ページ、アーカイブページ、検索結果ページなど、異なる種類のページに対してサイドバーの表示設定を判定します。
add_filter( 'swell_is_show_sidebar', function( $is_show ) {
if ( is_archive() ) {
return true; // アーカイブページでサイドバーを表示
}
return $is_show; // それ以外のページはデフォルトの設定に従う
} );
swell_is_show_toc_ad
このフィルターフックは、SWELL テーマで投稿ページや固定ページに目次広告を表示するかどうかを判定するために使用されます。
目次広告は、サイト運営者が設定した広告を目次の上または下に表示する機能です。このフィルターフックを使用することで、特定の条件下で目次広告の表示を制御することができます。
add_filter( 'swell_is_show_toc_ad', function( $is_show ) {
if ( is_single() ) {
return true; // 投稿ページで目次広告を表示
}
return $is_show; // それ以外のページはデフォルトの設定に従う
} );
swell_is_show_ttltop
このフィルターフックは、SWELL テーマでページタイトルをコンテンツの上部に表示するかどうかを判定するために使用されます。
このフィルターフックを使用することで、特定の条件下でページタイトルの表示位置を制御することができます。
add_filter( 'swell_is_show_ttltop', function( $is_show ) {
if ( is_single() && has_category( '特定のカテゴリー', get_the_ID() ) ) {
return true; // 特定のカテゴリーの投稿ページでページタイトルを上部に表示
}
return $is_show; // それ以外のページはデフォルトの設定に従う
} );
swell_lp_content_attrs
このフィルターフックは、SWELL テーマでランディングページのコンテンツ部分 (#lp-content
) に追加する HTML 属性をカスタマイズするために使用されます。
デフォルトでは、この部分には現在の投稿の ID を示す data-postid
属性が含まれますが、フィルターフックを利用して他の属性を追加したり、既存の属性を変更したりすることができます。
add_filter( 'swell_lp_content_attrs', function( $attrs ) {
return $attrs . ' data-custom-attr="value"'; // カスタム属性を追加
} );
swell_parts_head_logo
このフィルターフックは、SWELL テーマで表示されるヘッダーロゴを操作するために使用されます。
デフォルトでは、テーマのカスタマイズ設定で設定されたロゴ画像またはサイトのタイトルが表示されますが、このフックを利用してロゴの内容を動的に変更したり、追加のマークアップを追加したりすることができます。
add_filter( 'swell_parts_head_logo', function( $logo_html, $is_fixbar ) {
// 追加したいクラス
$additional_class = 'custom-logo-class';
// ロゴの HTML にクラスを追加
$logo_html = str_replace( 'c-headLogo', 'c-headLogo ' . $additional_class, $logo_html );
return $logo_html;
}, 10, 2 );
swell_parts_scroll_arrow
このフィルターフックは、SWELL テーマで表示されるスクロールアローのマークアップを操作するために使用されます。
デフォルトでは、スライダーやビデオセクションの下部に表示される矢印がありますが、このフックを利用してアローのスタイルや動作をカスタマイズすることができます。
add_filter( 'swell_parts_scroll_arrow', function( $arrow_html ) {
// 新しい色を設定
$new_color = '#ff0000';
// アローの色を変更
$arrow_html = str_replace( 'currentColor', $new_color, $arrow_html );
return $arrow_html;
} );
swell_parts_toc_ad
このフィルターフックは、SWELL テーマで目次上部に挿入される広告コードを操作するために使用されます。
デフォルトでは、テーマの設定で指定された広告コードが挿入されますが、このフックを利用して広告コードを動的に変更したり、条件に応じて異なる広告を表示したりすることができます。
add_filter( 'swell_parts_toc_ad', function( $toc_adcode ) {
if ( is_single() && has_category( '特定のカテゴリー', get_the_ID() ) ) {
// カスタム広告コード
$custom_adcode = '<div class="custom-ad">ここにカスタム広告コードを挿入</div>';
return $custom_adcode;
}
return $toc_adcode;
} );
swell_post_content_class
このフィルターフックは、投稿のコンテンツ部分のクラス属性を変更するために使用されます。
これを利用して、コンテンツのスタイルをカスタマイズするための追加のクラスを動的に追加できます。
add_filter( 'swell_post_content_class', function( $class ) {
// 追加したいクラスを指定
$additional_class = 'custom-content-class';
// 既存のクラスに追加クラスを追加
$class .= ' ' . $additional_class;
return $class;
});
この例では、投稿のコンテンツ部分に custom-content-class
というクラスが追加されます。
swell_root_attrs
このフィルターフックは、SWELL テーマで <html>
タグに追加する HTML 属性をカスタマイズするために使用されます。
デフォルトでは、この部分にはページの状態を示すための属性が含まれていますが、フィルターフックを利用して他の属性を追加したり、既存の属性を変更したりすることができます。
add_filter( 'swell_root_attrs', function( $attrs ) {
return $attrs . ' data-custom-attr="value"'; // カスタム属性を追加
} );
swell_table_scroll_hint
このフィルターフックは、SWELL テーマでテーブルブロックにスクロールヒントを追加する際に使用されます。
デフォルトでは、スクロールヒントは「スクロールできます <i class=”icon-more_arrow”></i>」というテキストとアイコンで構成されていますが、このフィルターフックを使用してカスタマイズすることができます。
add_filter( 'swell_table_scroll_hint', function( $hint_src ) {
return '<div class="c-scrollHint"><span>' . esc_html__( '右にスクロール', 'swell' ) . ' <i class="icon-arrow_right"></i></span></div>';
} );
swell_get_svg
このフィルターフックは、SWELL テーマで SVG アイコンを取得する際に使用されます。
デフォルトでは、指定されたアイコン名に応じた SVG パスが返されますが、このフックを利用してカスタム SVG アイコンを返すことができます。
add_filter( 'swell_get_svg', function( $svg, $icon_name, $attrs ) {
// カスタマイズしたいアイコン名を指定
if ( 'custom-icon' === $icon_name ) {
// カスタム SVG パスを設定
$custom_path = '<path d="..."></path>';
// カスタム SVG を生成
$svg = '<svg xmlns="http://www.w3.org/2000/svg" class="swl-svg-custom-icon" width="1em" height="1em" viewBox="0 0 48 48" role="img" aria-hidden="true" focusable="false">' . $custom_path . '</svg>';
}
return $svg;
}, 10, 3 );
swell_do_blog_parts
このフィルターフックは、SWELL テーマでブログパーツを出力する際に使用されます。
デフォルトでは、SWELL テーマに組み込まれているブログパーツが出力されますが、このフックを利用してカスタムブログパーツを追加したり、既存のブログパーツを変更したりすることができます。
add_filter( 'swell_do_blog_parts', function( $blog_parts ) {
// カスタムブログパーツを追加
$blog_parts['custom_part'] = '<div class="custom-blog-part">This is a custom blog part.</div>';
return $blog_parts;
} );
swell_show_term_navigation
このフィルターフックは、SWELL テーマでカテゴリーの階層リストを表示するかどうかを制御するために使用されます。
デフォルトでは、テーマの設定に従ってカテゴリーの階層リストが表示されますが、このフックを利用して特定の条件下での表示を制御したり、カスタマイズしたりすることができます。
add_filter( 'swell_show_term_navigation', function( $show_term_navigation, $taxonomy, $term_id ) {
// 特定のカテゴリーIDを指定
$specific_category_id = 123;
if ( 'category' === $taxonomy && $specific_category_id === $term_id ) {
return true; // 階層リストを表示
}
return false; // それ以外の場合は階層リストを非表示
}, 10, 3 );
パフォーマンス・最適化関連
swell_blocks_rss_cache_time
このフィルターフックは、SWELL テーマでRSSブロックのキャッシュ時間をカスタマイズするために使用されます。
デフォルトでは、キャッシュ時間は1日( DAY_IN_SECONDS
)と設定されていますが、このフィルターフックを使用してキャッシュ時間を変更することができます。
add_filter( 'swell_blocks_rss_cache_time', function( $cache_time, $rss_url ) {
return HOUR_IN_SECONDS; // キャッシュ時間を1時間に設定
}, 10, 2 );
swell_delay_js_list
このフィルターフックは、SWELL テーマで JavaScript の遅延読み込みを設定する際に使用されます。
遅延読み込みを適用したい JavaScript ファイルやコードのキーワードをリストとして設定し、このフィルターフックを使用してカスタマイズすることができます。
add_filter( 'swell_delay_js_list', function( $delay_js_list ) {
// 「example.js」というキーワードを追加
$delay_js_list[] = 'example.js';
// 「my-script」というキーワードを追加
$delay_js_list[] = 'my-script';
return $delay_js_list;
} );
swell_delay_js_prevent_pages
このフィルターフックは、SWELL テーマで JavaScript の遅延読み込みを設定する際に、遅延読み込みを適用しないページを指定するために使用されます。
遅延読み込みを適用したくないページのURLやキーワードをリストとして設定し、このフィルターフックを使用してカスタマイズすることができます。
add_filter( 'swell_delay_js_prevent_pages', function( $prevent_pages ) {
// 「example-page」というURLの一部を持つページを追加
$prevent_pages[] = 'example-page';
// 「contact」というURLの一部を持つページを追加
$prevent_pages[] = 'contact';
return $prevent_pages;
} );
swell_hide_fse_blocks
このフィルターフックは、SWELL テーマで Full Site Editing (FSE) 関連のブロックをエディターから非表示にするかどうかを制御するために使用されます。
FSE は WordPress の新機能で、サイト全体の編集をブロックエディターで行うことができるようにするものです。
しかし、FSE を使用しない場合や、特定のブロックを非表示にしたい場合にこのフィルターフックを利用できます。
add_filter( 'swell_hide_fse_blocks', '__return_true' );
swell_infobar_data
このフィルターフックは、SWELL テーマでのインフォメーションバーに表示されるデータ(URL、テキスト、ボタンテキスト)を変更するために使用されます。
これを利用して、インフォメーションバーに表示される情報を動的に変更することができます。
add_filter( 'swell_infobar_data', function( $info_data ) {
// インフォメーションバーのテキストをカスタマイズ
$info_data['text'] = '新しいお知らせがあります!';
// インフォメーションバーのURLをカスタマイズ
$info_data['url'] = 'https://example.com/news';
return $info_data;
});
swell_is_separate_css
このフィルターフックは、SWELL テーマで必要な CSS のみを読み込むかどうかを判定するために使用されます。
この機能を有効にすると、ページに必要なスタイルのみが読み込まれるため、ページのパフォーマンスが向上する可能性があります。
add_filter( 'swell_is_separate_css', '__return_false' );
swell_remove_url_to_card
このフィルターフックは、SWELL テーマでコンテンツ内の URL を自動的にブログカードに変換する機能を無効化するために使用されます。
フィルターフックを利用して、特定の条件下でこの機能を無効にすることができます。
add_filter( 'swell_remove_url_to_card', function( $remove_url_to_card ) {
if ( is_single() && has_category( '特定のカテゴリー', get_the_ID() ) ) {
return true; // 特定のカテゴリーの投稿ページでは URL をブログカードに変換しない
}
return $remove_url_to_card;
} );
swell_update_json_name
このフィルターフックは、SWELL テーマでアップデート情報を取得するための JSON ファイルの名前を変更するために使用されます。
デフォルトでは、この JSON ファイルの名前は update.json
ですが、フィルターフックを利用して名前を変更することができます。
add_filter( 'swell_update_json_name', function( $json_name ) {
return 'my_update.json'; // JSON ファイルの名前を変更
} );
ブログ・投稿関連
swell_get_archive_data
このフィルターフックは、SWELL テーマでアーカイブページのデータを取得する際に使用されます。
アーカイブページの種類(投稿タイプアーカイブ、カテゴリー、タグ、カスタムタクソノミー、著者、日付アーカイブなど)とタイトルを含むデータ配列を返します。このフックを利用して、アーカイブページのデータをカスタマイズすることができます。
add_filter( 'swell_get_archive_data', function( $data ) {
// カスタムタクソノミーアーカイブの場合、タイトルを変更する
if ( 'tax' === $data['type'] ) {
$data['title'] = 'カスタムタクソノミー: ' . $data['title'];
}
return $data;
} );
swell_get_search_terms_status
このフィルターフックは、SWELL テーマで検索結果ページの絞り込み状況をテキストとして取得するために使用されます。
このフィルターフックを使用することで、検索結果ページでユーザーがどのような条件で絞り込みを行ったかを表示することができます。
特に、カテゴリーやタグによる絞り込みが行われた場合、その情報をテキストとして返します。
add_filter( 'swell_get_search_terms_status', function( $return_text ) {
// 検索結果ページの絞り込み状況を取得
$searched_status = SWELL_Theme\Utility\Get::get_searched_status();
// 絞り込み条件があれば表示用テキストを追加
if ( ! empty( $searched_status ) ) {
$return_text .= '<div class="searched-status">' . esc_html( $searched_status ) . '</div>';
}
return $return_text;
} );
swell_get_search_title
このフィルターフックは、SWELL テーマ内で定義されている SWELL_Theme\Utility\Get::get_search_title
メソッド内で使用されます。
このメソッドは、検索結果ページのタイトルを取得するために使用されます。
swell_get_search_title
フィルターフックを使用することで、検索結果ページのタイトルをカスタマイズすることができます。
add_filter( 'swell_get_search_title', function( $s_title ) {
// 検索結果ページのタイトルを変更する
$s_title = 'カスタマイズされた検索結果: ' . $s_title;
return $s_title;
});
swell_get_tax_of_post_type
このフィルターフックは、指定されたカスタム投稿タイプに紐付いたタクソノミーを取得するために使用されます。
カスタム投稿タイプに複数のタクソノミーが紐付いている場合、このフィルターフックを使用して特定のタクソノミーを取得することができます。
add_filter( 'swell_get_tax_of_post_type', function( $the_tax, $the_post_type ) {
// カスタム投稿タイプ 'my_custom_post_type' に紐付いたタクソノミー 'my_custom_taxonomy' を取得
if ( 'my_custom_post_type' === $the_post_type ) {
return 'my_custom_taxonomy';
}
return $the_tax; // それ以外の投稿タイプはデフォルトのタクソノミーを返す
}, 10, 2 );
swell_get_the_term_links
このフィルターフックは、SWELL テーマで生成される投稿のターム(カテゴリーやタグ)のリンクを操作するために使用されます。
デフォルトでは、投稿に関連付けられている各タームのリンクが生成されますが、このフックを利用してリンクの形式を変更したり、追加のマークアップを追加したりすることができます。
add_filter( 'swell_get_the_term_links', function( $thelist, $post_id, $tax ) {
// 追加したいクラス名
$additional_class = 'custom-class';
// リンクにクラスを追加
$thelist = str_replace( 'c-categoryList__link', 'c-categoryList__link ' . $additional_class, $thelist );
return $thelist;
}, 10, 3 );
swell_get_the_terms_data
このフィルターフックは、SWELL テーマ内で定義されている get_the_terms_data
関数内で使用されます。
この関数は、指定された投稿のタクソノミー項目のデータを取得し、そのデータをフィルタリングするためにこのフックを提供します。
add_filter( 'swell_get_the_terms_data', function( $terms_data ) {
foreach ( $terms_data as &$term_data ) {
// 例えば、特定のカテゴリー名を変更したい場合
if ( '旧カテゴリー名' === $term_data['name'] ) {
$term_data['name'] = '新カテゴリー名';
}
}
return $terms_data;
});
swell_pager_range
このフィルターフックは、SWELL テーマでのページネーションにおいて、現在のページの左右に表示するページ数の範囲を変更するために使用されます。
これを利用して、ページネーションの表示範囲を動的に変更することができます。
add_filter( 'swell_pager_range', function( $range ) {
// 左右に表示するページ数の範囲を3に設定
return 3;
});
swell_pickup_post_args
このフィルターフックは、SWELL テーマでの記事スライダーに表示される投稿リストのクエリ引数を変更するために使用されます。
これを利用して、記事スライダーに表示される投稿の条件を動的に変更することができます。
add_filter( 'swell_pickup_post_args', function( $query_args ) {
// カスタム投稿タイプ「my_post_type」の投稿を表示
$query_args['post_type'] = 'my_post_type';
// タグID「123」を持つ投稿を除外
$query_args['tag__not_in'] = [123];
// 投稿日が過去7日以内の投稿のみ表示
$query_args['date_query'] = [
[
'after' => '7 days ago',
],
];
return $query_args;
});
swell_post_list_cat_data
このフィルターフックは、SWELL テーマで投稿リストに表示されるカテゴリー情報をカスタマイズするために使用されます。
デフォルトでは、投稿に割り当てられた最初のカテゴリーのIDと名前が使用されますが、このフックを利用して別のカテゴリー情報を表示することができます。
add_filter( 'swell_post_list_cat_data', function( $cat_data, $post_id ) {
// カスタマイズしたい条件に応じてカテゴリー情報を変更
if ( 特定の条件 ) {
$cat_data['id'] = 新しいカテゴリーID;
$cat_data['name'] = '新しいカテゴリー名';
}
return $cat_data;
}, 10, 2 );
swell_post_list_type_on_archive
このフィルターフックは、アーカイブページに表示される投稿リストのタイプを変更するために使用されます。
これを利用して、アーカイブページの投稿リストの表示スタイルを動的に変更することができます。
add_filter( 'swell_post_list_type_on_archive', function( $list_type, $archive_data ) {
// 特定のカテゴリーのアーカイブページの場合
if ( is_category( '特定のカテゴリー' ) ) {
// リストタイプを 'card' に変更
$list_type = 'card';
}
// 特定のタグのアーカイブページの場合
elseif ( is_tag( '特定のタグ' ) && $archive_data['title'] === 'タグのタイトル' ) {
// リストタイプを 'list' に変更
$list_type = 'list';
}
// 変更されたリストタイプを返す
return $list_type;
}, 10, 2 );
is_category()
関数を利用して特定のカテゴリーにのみ適用されるようにしています。
$archive_data
パラメータを利用することで、アーカイブの情報に基づいて条件分岐を行うことも可能です。
swell_post_list_type_on_search
このフィルターフックは、SWELL テーマで検索結果ページに表示される投稿リストのスタイル(リストタイプ)をカスタマイズするために使用されます。
デフォルトのリストタイプはテーマの設定に依存しますが、このフックを利用して検索結果ページのリストタイプを個別に指定することができます。
add_filter( 'swell_post_list_type_on_search', function( $list_type ) {
return 'card';
});
swell_post_list_type_on_term
このフィルターフックは、ターム(カテゴリーやタグなど)アーカイブページに表示される投稿リストのタイプを変更するために使用されます。
これを利用して、タームアーカイブページの投稿リストの表示スタイルを動的に変更することができます。
add_filter( 'swell_post_list_type_on_term', function( $list_type, $term_id ) {
// 特定のカテゴリーのアーカイブページの場合
if ( 'category' === get_term( $term_id )->taxonomy && '特定のカテゴリースラッグ' === get_term( $term_id )->slug ) {
// リストタイプを 'grid' に変更
$list_type = 'grid';
}
return $list_type;
}, 10, 2 );
get_term()
関数を利用してタームの情報を取得し、条件分岐に使用しています。
$term_id
パラメータを利用することで、特定のタームに対してのみリストタイプを変更することができます。
swell_related_post_args
このフィルターフックは、SWELL テーマで関連記事を表示する際のクエリ引数をカスタマイズするために使用されます。
デフォルトでは、投稿タイプやカテゴリー、タグなどに基づいて関連記事が選択されますが、このフックを利用してクエリ引数を変更することで、表示する関連記事の条件を細かく調整することができます。
add_filter( 'swell_related_post_args', function( $args ) {
$args['meta_query'] = [
[
'key' => 'custom_field_key',
'value' => 'custom_value',
'compare' => '=',
],
];
return $args;
});
swell_related_post_maxnum
このフィルターフックは、SWELL テーマで関連記事を表示する際の最大表示数をカスタマイズするために使用されます。
デフォルトでは、8つの関連記事が表示されますが、このフックを利用して表示数を変更することができます。
add_filter( 'swell_related_post_maxnum', function( $maxnum ) {
return 5;
});
swell_toc_target
このフィルターフックは、SWELL テーマで目次(TOC: Table of Contents)を生成する際に、どの要素を目次の対象とするかを指定するために使用されます。
デフォルトでは、h2,h3,h4 が対象となりますが、このフィルターフックを使用することで、対象とする要素をカスタマイズすることができます。
add_filter( 'swell_toc_target', function( $meta ) {
return 'h3';
} );
swell_twitter_to_x
このフィルターフックは、SWELL テーマでのアイコンリストにおいて、Twitter アイコンを特定のアイコンに置き換えるために使用されます。
デフォルトでは、Twitter アイコンは通常のものが使用されますが、このフックを利用して、例えばTwitter X アイコンに変更することができます。
add_filter( 'swell_twitter_to_x', function( $value ) {
// Twitter アイコンを Twitter X アイコンに置き換える
return true;
});
カスタムフォーマット・エディター関連
swell_code_meta_screens
このフィルターフックは、SWELL テーマでカスタム CSS と JS のメタボックスを表示する投稿タイプを指定するために使用されます。
デフォルトでは、post
と page
に加えて、カスタム投稿タイプも含まれますが、このフィルターフックを使用して表示する投稿タイプを変更することができます。
add_filter( 'swell_code_meta_screens', function( $screens ) {
return ['post', 'custom_post_type']; // 'post' と 'custom_post_type' にのみメタボックスを表示
} );
swell_custom_format_sets
このフィルターフックは、SWELL テーマでカスタム書式セットを定義する際に使用されます。
カスタム書式セットは、エディターでテキストに適用できる複数の書式を組み合わせたものです。
たとえば、テキストを太字にし、特定の背景色を付け、マーカーを適用するといった書式セットを定義することができます。
add_filter( 'swell_custom_format_sets', function( $custom_format_sets ) {
$custom_format_sets[] = [
[
'type' => 'loos/bg-color',
'attributes' => [ 'class' => 'swl-bg-color has-custom-background-color' ],
],
[
'type' => 'loos/marker',
'attributes' => [ 'class' => 'mark_custom' ],
],
[
'type' => 'loos/text-color',
'attributes' => [ 'class' => 'has-custom-color' ],
],
[
'type' => 'loos/font-size',
'attributes' => [ 'class' => 'u-fz-custom' ],
],
[
'type' => 'core/bold',
],
[
'type' => 'core/italic',
],
];
return $custom_format_sets;
} );
swell_custom_formats
このフィルターフックは、SWELL テーマでカスタム書式を定義する際に使用されます。
カスタム書式は、エディターでテキストに適用できるカスタムスタイルです。
たとえば、特定の色でテキストを強調する書式や、特定のフォントサイズでテキストを表示する書式などを定義することができます。
add_filter( 'swell_custom_formats', function( $custom_formats ) {
$custom_formats[] = [
'name' => 'loos/custom-format-example',
'title' => 'カスタム書式例',
'tagName' => 'span',
'className' => 'custom-format-example',
];
return $custom_formats;
} );
swell_side_meta_screens
このフィルターフックは、SWELL テーマで「SWELL設定」メタボックスを表示する投稿タイプを指定するために使用されます。
デフォルトでは、post
と page
に加えて、カスタム投稿タイプも含まれますが、このフィルターフックを使用して表示する投稿タイプを変更することができます。
add_filter( 'swell_side_meta_screens', function( $screens ) {
return ['post', 'custom_post_type']; // 'post' と 'custom_post_type' にのみメタボックスを表示
} );
swell_term_meta_screens
このフィルターフックは、SWELL テーマ内で定義されているタームメタデータの管理画面に関連する処理で使用されます。
swell_term_meta_screens
フィルターフックを使用することで、タームメタデータを追加するタクソノミーの画面をカスタマイズすることができます。
add_filter( 'swell_term_meta_screens', function( $screens ) {
$screens[] = 'custom_taxonomy';
return $screens;
} );
おまけ│SWELLで使われているフックまとめ
こちらは本記事の趣旨とは逸れますが、興味があったので調べてみました。
SWELLで使われているフックを見る
アクションフック 全50個
まずはアクションフックから。
フック名 | ファイルの場所 |
---|---|
admin_menu | wp-content/themes/swell/classes/Admin_Menu.php |
admin_init | wp-content/themes/swell/classes/Admin_Menu.php |
after_setup_theme | wp-content/themes/swell/classes/Theme_Data.php |
init | wp-content/themes/swell/classes/Theme_Data.php |
wp_loaded | wp-content/themes/swell/classes/Theme_Data.php |
show_user_profile | wp-content/themes/swell/classes/Meta_User.php |
edit_user_profile | wp-content/themes/swell/classes/Meta_User.php |
profile_update | wp-content/themes/swell/classes/Meta_User.php |
dynamic_sidebar | wp-content/themes/swell/classes/Pre_Parse_Blocks.php |
widgets_init | wp-content/themes/swell/classes/Legacy_Widget.php |
wp_head | wp-content/themes/swell/lib/content_filter.php |
tiny_mce_before_init | wp-content/themes/swell/lib/tiny_mce.php |
upgrader_process_complete | wp-content/themes/swell/lib/update/Puc/v4p5/UpgraderStatus.php |
admin_footer-edit.php | wp-content/themes/swell/lib/hooks/admin_display.php |
admin_notices | wp-content/themes/swell/lib/notice.php |
wp_dashboard_setup | wp-content/themes/swell/lib/notice.php |
enqueue_block_editor_assets | wp-content/themes/swell/lib/load/block_assets.php |
admin_enqueue_scripts | wp-content/themes/swell/lib/load/admin.php |
wp | wp-content/themes/swell/lib/load/jquery.php |
rest_api_init | wp-content/themes/swell/lib/rest_api.php |
current_screen | wp-content/themes/swell/lib/activate.php |
after_setup_theme | wp-content/themes/swell/lib/theme_setup.php |
init | wp-content/themes/swell/lib/gutenberg/register_blocks.php |
add_meta_boxes | wp-content/themes/swell/lib/post_meta/meta_side.php |
save_post | wp-content/themes/swell/lib/post_meta/meta_lp.php |
pre_get_posts | wp-content/themes/swell/lib/hooks.php |
wp_headers | wp-content/themes/swell/lib/hooks.php |
wp_terms_checklist_args | wp-content/themes/swell/lib/hooks.php |
the_password_form | wp-content/themes/swell/lib/hooks.php |
hook_init | wp-content/themes/swell/lib/post_type.php |
hook_admin_init | wp-content/themes/swell/lib/post_type.php |
set_data__init | wp-content/themes/swell/lib/define_const.php |
hook_wp_loaded | wp-content/themes/swell/lib/define_const.php |
hook_wp | wp-content/themes/swell/lib/define_const.php |
フィルターフック 全84個
次にフィルターフック。
フック名 | ファイルの場所 |
---|---|
render_block | wp-content/themes/swell/classes/Pre_Parse_Blocks.php |
widget_text | wp-content/themes/swell/classes/Pre_Parse_Blocks.php |
widget_text_content | wp-content/themes/swell/classes/Pre_Parse_Blocks.php |
widget_title | wp-content/themes/swell/classes/Legacy_Widget.php |
the_content | wp-content/themes/swell/lib/content_filter.php |
widget_block_content | wp-content/themes/swell/lib/content_filter.php |
mce_external_plugins | wp-content/themes/swell/lib/tiny_mce.php |
mce_buttons_2 | wp-content/themes/swell/lib/tiny_mce.php |
upgrader_pre_install | wp-content/themes/swell/lib/update/Puc/v4p5/UpgraderStatus.php |
upgrader_package_options | wp-content/themes/swell/lib/update/Puc/v4p5/UpgraderStatus.php |
upgrader_post_install | wp-content/themes/swell/lib/update/Puc/v4p5/UpgraderStatus.php |
cron_schedules | wp-content/themes/swell/lib/update/Puc/v4p5/Scheduler.php |
plugins_api | wp-content/themes/swell/lib/update/Puc/v4p5/Plugin/UpdateChecker.php |
plugin_row_meta | wp-content/themes/swell/lib/update/Puc/v4p5/Plugin/Ui.php |
debug_bar_panels | wp-content/themes/swell/lib/update/Puc/v4p5/DebugBar/Extension.php |
upgrader_pre_download | wp-content/themes/swell/lib/update/Puc/v4p5/Vcs/GitHubApi.php |
http_request_args | wp-content/themes/swell/lib/update/Puc/v4p5/Vcs/GitHubApi.php |
site_transient_update_plugins | wp-content/themes/swell/lib/update/Puc/v4p5/UpdateChecker.php |
upgrader_source_selection | wp-content/themes/swell/lib/update/Puc/v4p5/UpdateChecker.php |
http_request_host_is_external | wp-content/themes/swell/lib/update/Puc/v4p5/UpdateChecker.php |
render_block_loos/faq | wp-content/themes/swell/lib/gutenberg/render_hook/faq.php |
render_block_core/table | wp-content/themes/swell/lib/gutenberg/render_hook/core_table.php |
render_block_loos/box-menu-item | wp-content/themes/swell/lib/gutenberg/render_hook.php |
render_block_loos/columns | wp-content/themes/swell/lib/gutenberg/render_hook.php |
render_block_loos/box-menu | wp-content/themes/swell/lib/gutenberg/render_hook.php |
render_block_loos/tab | wp-content/themes/swell/lib/gutenberg/render_hook.php |
render_block_loos/accordion-item | wp-content/themes/swell/lib/gutenberg/render_hook.php |
render_block_core/image | wp-content/themes/swell/lib/gutenberg/render_hook.php |
separate_core_block_assets | wp-content/themes/swell/lib/gutenberg/block_control.php |
widget_types_to_hide_from_legacy_widget_block | wp-content/themes/swell/lib/gutenberg/block_control.php |
manage_posts_columns | wp-content/themes/swell/lib/hooks/admin_display.php |
manage_pages_columns | wp-content/themes/swell/lib/hooks/admin_display.php |
manage_edit-category_columns | wp-content/themes/swell/lib/hooks/admin_display.php |
manage_edit-post_tag_columns | wp-content/themes/swell/lib/hooks/admin_display.php |
manage_category_custom_column | wp-content/themes/swell/lib/hooks/admin_display.php |
manage_post_tag_custom_column | wp-content/themes/swell/lib/hooks/admin_display.php |
manage_edit-category_sortable_columns | wp-content/themes/swell/lib/hooks/admin_display.php |
manage_edit-post_tag_sortable_columns | wp-content/themes/swell/lib/hooks/admin_display.php |
manage_edit-post_sortable_columns | wp-content/themes/swell/lib/hooks/admin_display.php |
request | wp-content/themes/swell/lib/hooks/admin_display.php |
restrict_manage_posts | wp-content/themes/swell/lib/hooks/admin_display.php |
query_vars | wp-content/themes/swell/lib/hooks/admin_display.php |
posts_where | wp-content/themes/swell/lib/hooks/admin_display.php |
plugin_auto_update_setting_html | wp-content/themes/swell/lib/hooks/admin_display.php |
theme_auto_update_setting_html | wp-content/themes/swell/lib/hooks/admin_display.php |
admin_bar_menu | wp-content/themes/swell/lib/hooks/admin_toolbar.php |
embed_oembed_discover | wp-content/themes/swell/lib/hooks/remove.php |
wp_sitemaps_enabled | wp-content/themes/swell/lib/hooks/remove.php |
wp_sitemaps_users_pre_url_list | wp-content/themes/swell/lib/hooks/remove.php |
wp_calculate_image_srcset_meta | wp-content/themes/swell/lib/hooks/remove.php |
emoji_svg_url | wp-content/themes/swell/lib/hooks/remove.php |
run_wptexturize | wp-content/themes/swell/lib/hooks/remove.php |
media_library_infinite_scrolling | wp-content/themes/swell/lib/hooks/remove.php |
script_loader_tag | wp-content/themes/swell/lib/hooks/remove.php |
style_loader_tag | wp-content/themes/swell/lib/hooks/remove.php |
wp_lazy_loading_enabled | wp-content/themes/swell/lib/hooks/remove.php |
widget_update_callback | wp-content/themes/swell/lib/hooks/cache_clear.php |
wp_generate_tag_cloud | wp-content/themes/swell/lib/hooks/edit_core_html.php |
wp_list_categories | wp-content/themes/swell/lib/hooks/edit_core_html.php |
wp_list_pages | wp-content/themes/swell/lib/hooks/edit_core_html.php |
get_archives_link | wp-content/themes/swell/lib/hooks/edit_core_html.php |
dynamic_sidebar_params | wp-content/themes/swell/lib/hooks/edit_core_html.php |
render_block_core/categories | wp-content/themes/swell/lib/hooks/edit_core_html.php |
render_block_core/archives | wp-content/themes/swell/lib/hooks/edit_core_html.php |
puc_request_update_options_theme-swell | wp-content/themes/swell/lib/update.php |
do_shortcode_tag | wp-content/themes/swell/lib/load/check_code.php |
render_block_core/list | wp-content/themes/swell/lib/load/check_code.php |
render_block_core/gallery | wp-content/themes/swell/lib/load/check_code.php |
should_load_separate_core_block_assets | wp-content/themes/swell/lib/load/separate.php |
nav_menu_item_id | wp-content/themes/swell/lib/custom_menu.php |
nav_menu_css_class | wp-content/themes/swell/lib/custom_menu.php |
walker_nav_menu_start_el | wp-content/themes/swell/lib/custom_menu.php |
render_block_core/group | wp-content/themes/swell/lib/gutenberg.php |
wp_theme_json_data_default | wp-content/themes/swell/lib/gutenberg.php |
wp_omit_loading_attr_threshold | wp-content/themes/swell/lib/gutenberg.php |
pre_term_description | wp-content/themes/swell/lib/hooks.php |
body_class | wp-content/themes/swell/lib/hooks.php |
the_excerpt_rss | wp-content/themes/swell/lib/hooks.php |
the_content_feed | wp-content/themes/swell/lib/hooks.php |
pre_get_avatar | wp-content/themes/swell/lib/hooks.php |
swell_is_show_sidebar | wp-content/themes/swell/lib/overwrite.php |
swell_is_show_index | wp-content/themes/swell/lib/overwrite.php |
swell_toc_target | wp-content/themes/swell/lib/overwrite.php |
swell_is_show_toc_ad | wp-content/themes/swell/lib/overwrite.php |
swell_is_show_ttltop | wp-content/themes/swell/lib/overwrite.php |
swell_is_show_pickup_banner | wp-content/themes/swell/lib/overwrite.php |
swell_show_term_navigation | wp-content/themes/swell/lib/overwrite.php |
SWELLのフックまとめ
本記事ではSWELLのフックまとめについてまとめました。
開発者が細かくフックを仕込んでいるおかけで、部分的なカスタマイズを上書きして変更することができて非常に便利です。
もしカスタマイズが浮かびましたら、この記事を参考にフックを使って調整してみてください。