【お使いの Snow Monkey のバージョン】v5.1.1(ローカルのテスト環境)
【お使いのブラウザ】safari、chrome
template-parts/loop/entry-summary-post.phpやentry-summary.phpの「summary__meta」だけ差し替えたいのですが、フィルターなどで可能でしょうか。
ポストタイプごとに「summary__meta」だけ様式や出力する項目を変更したいのですが、今後のSnow Monkeyのアップデートを生かすことを考えると、entry-summary-〇〇.phpを量産せず「summary__meta」以外は元のentry-summary.phpをそのまま使いたいです。
以前フォーラムに書かれた以下のページで「snow_monkey_entry_meta_items」というフックがあるように書かれていますが、Snow Monkey内で見つけられませんでした。
あー、意味がわかりました。あれですね、追加したカテゴリー表示以外に、「普通のカテゴリー表示」が消えずにでちゃってますね。うーん、実行順かなぁ…。
remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_categories', 40 );
の部分を、
add_action(
'after_setup_theme',
function() {
remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_categories', 40 );
}
);
に書き換えるとどうでしょう?
子テーマの functions.php に下記のコードを貼り付けてください。
/**
* 子カテゴリーを選択するという前提で、親: 子、子 という形で表示させる
*/
function my_snow_monkey_entry_meta_items_categories() {
$categories = get_the_terms( get_the_ID(), 'category' );
if ( ! $categories ) {
return;
}
$new_categories = [];
foreach ( $categories as $category ) {
if ( ! $category->parent ) {
$new_categories[ $category->term_id ] = [];
} else {
$new_categories[ $category->parent ][] = $category;
}
}
?>
<?php foreach ( $new_categories as $parent_id => $child_categories ) : ?>
<?php $parent_category = get_term( $parent_id, 'category' ); ?>
<li class="c-meta__item c-meta__item--categories" style="display: block; padding-left: 0">
<a href="<?php echo esc_url( get_term_link( $parent_category ) ); ?>"><?php echo esc_html( $parent_category->name ); ?></a>
<?php foreach ( $child_categories as $child_category ) : ?>
<i class="fas fa-folder" aria-hidden="true"></i>
<a href="<?php echo esc_url( get_term_link( $child_category ) ); ?>"><?php echo esc_html( $child_category->name ); ?></a>
<?php endforeach; ?>
</li>
<?php endforeach; ?>
<?php
}
remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_categories', 40 );
add_action( 'snow_monkey_entry_meta_items', 'my_snow_monkey_entry_meta_items_categories', 40 );