投稿のヘッダー部分というのはタイトル下部のメタアイテムの事でしょうか?
My Snow Monkey でコードを書いてみてください。
各要素の消し方としては、下記のトピックも参考にしてください。
add_action(
'snow_monkey_entry_meta_items',
function() {
if ( 'modified-date' === get_theme_mod( 'post-date' ) ) {
// 更新日を削除
// remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_modified', 20 );
//
} elseif ( 'modified-date-high' === get_theme_mod( 'post-date' ) ) {
// 更新日を削除
// remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_modified', 10 );
}
},
9 // 優先度は9必須
);
投稿ページのタグの表示がデフォルトで記事の最後になっていますが、カテゴリと同じく記事のトップにもってくるにはどうしたらよいでしょうか?
My Snow Monkey に下記のコードを追加してください。
add_action(
'snow_monkey_entry_meta_items',
function() {
if ( ! get_the_terms( get_the_ID(), 'post_tag' ) ) {
return;
}
?>
<li class="c-meta__item c-meta__item--tags">
<?php \Framework\Helper::get_template_part( 'template-parts/content/entry-tags' ); ?>
</li>
<?php
},
41
);
これでカテゴリーの横に表示されるようになりますが、記事下のタグ表示を HTML 上から削除する簡単な方法がないので、こちらは CSS で消すのが良いかなと思います。
.c-entry__content .c-entry-tags {
display: none;
}
また、著作権者情報を非表示にしたいのですが、以下を追加cssに入れても非表示になりません。
.c-meta__item–author
を .c-meta__item–-author
に書き換えてください!(ハイフン2つです)
【お使いの Snow Monkey のバージョン】v10.10.8
【お使いのブラウザ】Safari
Snow Monkey Member Post 使用時に、メンバー限定記事に対して、メンバー限定であることを記事のメタアイテムに表示する方法:
カテゴリー前に、メンバー限定と表示します。
add_action(
'snow_monkey_entry_meta_items',
function() {
if ( get_post_meta( get_post()->ID, 'smmp-restriction', false ) ) {
echo '<li class="c-meta__item c-meta__item--memberonly"><i class="fas fa-user-lock" aria-hidden="true"></i> メンバー限定</li>';
}
},
31,
);
【対応している Snow Monkey のバージョン】v10.10.8
エントリーメタアイテムとは、タイトルの下に並んでいる
投稿日 更新日 投稿者 カテゴリー
の1つ1つの要素の事です。
この要素の表示をそれぞれ無くすには、下記のコードを参考にしてみてください。
add_action(
'snow_monkey_entry_meta_items',
function() {
if ( 'modified-date' === get_theme_mod( 'post-date' ) ) { // カスタマイザーの「SEO」「構造化データ」「検索エンジンに伝える日付」が「公開日」の時
// 投稿日を削除
// remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_published', 10 );
// 更新日を削除
// remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_modified', 20 );
//
} elseif ( 'modified-date-high' === get_theme_mod( 'post-date' ) ) { // カスタマイザーの「SEO」「構造化データ」「検索エンジンに伝える日付」が「更新日の表示を優先する」の時
// 更新日を削除
// remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_modified', 10 );
// 投稿日を削除
// remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_published_no_time', 20 );
}
// 投稿者を削除
// remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_author', 30 );
// カテゴリーを削除
// remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_categories', 40 );
},
9 // 優先度は9必須
);
投稿日と更新日の要素は、カスタマイザーの「SEO」「構造化データ」「検索エンジンに伝える日付」の設定によって表示の消し方が異なります。if
文で分岐しているのはその為です。
remove_action
の行のコメントアウトを外す事で、各要素の表示を消せます。
もし要素をカスタマイズしたい場合は、お試しください。
これでどうでしょう?
投稿タイプが news
、タクソノミーが news_category
の想定で書いています。
add_action(
'wp_head',
function() {
// news 詳細ページのときだけ
if ( is_singular( 'news' ) ) {
// デフォルトのカテゴリー表示を削除
remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_categories', 40 );
// 新しいカテゴリー表示を追加
add_action(
'snow_monkey_entry_meta_items',
function() {
// タクソノミーを指定
$terms = get_the_terms( get_the_ID(), 'news_category' );
?>
<?php foreach ( $terms as $term ) : ?>
<li class="c-meta__item c-meta__item--categories">
<span class="screen-reader-text"><?php echo esc_html( $term->label ); ?></span>
<i class="fas fa-folder" aria-hidden="true"></i>
<a href="<?php echo esc_url( get_term_link( $term ) ); ?>"><?php echo esc_html( $term->name ); ?></a>
</li>
<?php endforeach; ?>
<?php
},
40
);
}
}
);
【お使いの Snow Monkey のバージョン】 10.10.7
【お使いのブラウザ】 Google Chrome
【当該サイトのURL】(公開できる場合は書いていただいたほうがスムーズです)
===
こんにちは。お世話になっております。
現在、下記のような構成でカスタム投稿タイプとカスタムタクソノミーを作成しテーマを利用しているのですが、
カスタム投稿タイプ ←投稿のビューテンプレートを利用
– カスタムタクソノミーA
– カスタムタクソノミーB
この場合に、投稿ページで snow_monkey_entry_meta_items 内のカテゴリーに表示される内容が、タクソノミーの設定状況によってタクソノミーAが表示されたりタクソノミーBが表示されたりしています。
(Aが設定されていればA、AがなくBが設定されているとBが出る、という状況です)
こちら、カテゴリー欄に表示されるタクソノミーは一方に固定したいのですが、良い対応方法はありますでしょうか。
(そもそも、デフォルトの投稿におけるカテゴリーのような運用をしたい場合、タクソノミーの未設定を許容しないようにしたほうが良かったりするのでしょうか…)
ご教示いただけると幸いです。
お手間かけてすみません…。僕も CPT UI でテストしていたのでできないことはないはずなのですが、CPT UI に詳しいわけではないので、ちょっとどこに問題がありそうかまでわからず…。コードで書くほうが確実だし細かい調整もしやすいと思いますので、正しく動作しているのであればそれが良いと思います!
ただ、詳細ページについては、まだカテゴリーだけ表示されていません。↓
あ、これは前述したように Snow Monkey 側に問題がありますので、アップデートをお待ちいただければと思います。とりあえずパッチだけでも共有しましょうか。snow-monkey/app/setup/entry-meta.php
の snow_monkey_entry_meta_items_categories
を下記のように書き換えてみてください(本来 Snow Monkey のファイルを直接書き換えるのは NG ですが、次のアップデートで同じ変更が入るので直接変更されても問題ないかと思います)。
function snow_monkey_entry_meta_items_categories() {
$taxonomies = get_object_taxonomies( get_post_type(), 'object' );
foreach ( $taxonomies as $taxonomy ) {
if ( ! $taxonomy->public ) {
continue;
}
$terms = get_the_terms( get_the_ID(), $taxonomy->name );
break;
}
if ( empty( $terms ) || is_wp_error( is_wp_error( $terms ) ) || ! is_array( $terms ) ) {
return;
}
?>
<?php foreach ( $terms as $term ) : ?>
<li class="c-meta__item c-meta__item--categories">
<span class="screen-reader-text"><?php echo esc_html( $taxonomy->label ); ?></span>
<i class="fas fa-folder" aria-hidden="true"></i>
<a href="<?php echo esc_url( get_term_link( $term ) ); ?>"><?php echo esc_html( $term->name ); ?></a>
</li>
<?php endforeach; ?>
<?php
}
【お使いの 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 );