add_filter(
'snow_monkey_get_template_part_args_template-parts/common/page-header',
function( $args ) {
if ( is_singular( 'post' ) ) {
$args['vars']['_title'] = 'NEWS';
$args['vars']['_display_entry_meta'] = false;
}
return $args;
}
);
こんな感じでしょうか。
お試しくださいませ。
ありがとうございます。試してみたのですが、僕の環境ではそのコードでは年にならず「Works」のままでした。カテゴリーを登録する順番とか、何かが影響するのかもしれません。
ということで、上記のコードを改変して、下記のコードにして追加してみました。
add_filter(
'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
function( $args ) {
// カテゴリーアーカイブあるいはタクソノミーアーカイブあるいは投稿のとき
if ( is_category() || is_tax() || is_singular( 'post' ) ) {
// ページのクエリ情報を取得
$queried_object = get_queried_object();
// その投稿に割当てられているカテゴリーを全て取得
$_terms = get_the_terms( get_the_ID(), 'category' );
if ( ! $_terms ) {
return $args;
}
$new_terms = [];
// 割当てられているカテゴリーのうち、カテゴリー名が数字4桁のものがあればそれを使う
foreach ( $_terms as $_term ) {
if ( preg_match( '|^\d{4}$|', $_term->name ) ) {
$new_terms[] = $_term;
break;
}
}
$args['vars']['_terms'] = $new_terms;
}
return $args;
}
);
ありがとうございます。
北島さんのサンプルコードそのまんまなのですが,my-snow-monkey.php
に以下の通り追加しています。
/**
* カテゴリーラベル
*/
add_filter(
'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
function( $args ) {
// カテゴリーアーカイブあるいはタクソノミーアーカイブのとき
if ( is_category() || is_tax() ) {
// ページのクエリ情報を取得
$queried_object = get_queried_object();
// その投稿に割当てられているカテゴリー(タクソノミー)を全て取得
$terms = get_the_terms( get_the_ID(), $queried_object->taxonomy );
// 取得したカテゴリー(タクソノミー)のうち、最後のタームをカテゴリーラベルとして使用する
$args['vars']['_terms'] = [ end( $terms ) ];
}
return $args;
}
);
ご対応ありがとうございました。
どのラベルもメインカテゴリーが表示されるようになりました。
WORKSアーカイブの中は,下記のトピックを参考にフックで年号が表示されるように変更しました。
ただ,投稿の関連記事のところがテンプレートパーツまではわかったのですが,その先がわかりませんでした。
ちょっと教えていただけませんでしょうか。
add_filter(
'snow_monkey_get_template_part_args_template-parts/content/related-posts',
function( $args ) {
//この中
}
);
オレインさん、キタジマさん、ご返信ありがとうございます。
過去記事を確認させていただきました!
add_filter(
‘snow_monkey_get_template_part_args’,
function( $args ) {
if ( ‘template-parts/archive/entry/content/content’ === $args[‘slug’] ) {
if ( is_home() || is_category() || ‘news’ === $args[‘name’] ) {
$args[‘vars’][‘_entries_layout’] = ‘text’;
} else {
$args[‘vars’][‘_entries_layout’] = ‘simple’;
}
}
return $args;
}
);
「news」というスラッグのカテゴリのアーカイブページのみ記事一覧レイアウトをテキストにしたく、それ以外のカテゴリではリッチメディアとしたいのですが、その場合はどちらをどのように書き換えれば宜しかったでしょうか。
自分で記事を参考に書き換えてみたのですが、おそらく何かが間違っているのか全てのカテゴリに反映されてしまいます。
※当然ですが不具合ではなく私が理解していないからだと思います
大変恐縮ですが、引き続き、宜しくお願い致します。
オレインさんが書かれているのはページレイアウトの変更方法ですね。記事一覧レイアウトということなので一覧部分用テンプレートパーツの _entries_layout
を書き換える形になると思います。下記が参考になると思うので見てみてください。
// template-parts/archive/entry/content/content.php のテンプレート引数を書き換える
add_filter(
'snow_monkey_get_template_part_args_template-parts/archive/entry/content/content',
function( $args ) {
// カテゴリー news のときだけ
if ( is_category( 'news' ) ) {
// 記事一覧レイアウトを text に変更
$args['vars']['_entries_layout'] = 'text';
}
return $args;
}
);
カテゴリーラベルに表示するタームは snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term
フックで指定できます。例えば下記のようなコードを追加するとどうでしょうか?
add_filter(
'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
function( $args ) {
// カテゴリーアーカイブあるいはタクソノミーアーカイブのとき
if ( is_category() || is_tax() ) {
// ページのクエリ情報を取得
$queried_object = get_queried_object();
// その投稿に割当てられているカテゴリー(タクソノミー)を全て取得
$terms = get_the_terms( get_the_ID(), $queried_object->taxonomy );
// 取得したカテゴリー(タクソノミー)のうち、最後のタームをカテゴリーラベルとして使用する
$args['vars']['_terms'] = [ end( $terms ) ];
}
return $args;
}
);
上記コードは一般的なものなので、条件にあわせて書き直してみてください。
【お使いの Snow Monkey のバージョン】16.4.6
【お使いの Snow Monkey Blocks のバージョン】15.0.2
【お使いの Snow Monkey Editor のバージョン】7.0.1
### 実現したいこと
アクセシビリティ対応で、ドロワーを開いたときの、閉じるボタンのラベルを「とじる」に変更したいです。
### 試したこと
add_filter(
'snow_monkey_get_template_part_args_template-parts/header/hamburger-btn',
function( $args ) {
$args['vars']['_label'] = 'メニュー';
return $args;
}
);
メニューのラベルは上記のコードで変更できるのですが、[aria-expanded=false]
と[aria-expanded=true]
で、ラベルを出し分けることはできますでしょうか?
テストページ
にて、「お客様の声 voice」カテゴリーID 19を入れて教えていただいたコードを追加しましたが
最近の投稿一覧に「お客様の声」が出てきてしまうようです。
追加したコード
//最近の投稿から特定カテゴリーをはずす
add_filter(
'snow_monkey_get_template_part_args_template-parts/widget/snow-monkey-posts',
function( $args ) {
// 最近の投稿ブロック/最近の投稿ウィジェットの場合
// 実際にはもうちょっと条件を足して絞り込んだほうが良いかも
if ( 'recent' === $args['name'] ) {
$args['vars']['_posts_query']->set( 'category__not_in', [ 19 ] );
}
return $args;
}
);
下記が参考になると思います。
下記のような感じですかね? 試してみてください!
add_filter(
'snow_monkey_get_template_part_args_template-parts/widget/snow-monkey-posts',
function( $args ) {
// 最近の投稿ブロック/砂金の投稿ウィジェットの場合
// 実際にはもうちょっと条件を足して絞り込んだほうが良いかも
if ( 'recent' === $args['name'] ) {
$args['vars']['_posts_query']->set( 'category__not_in', [ 1, 2, 4 ] );
}
return $args;
}
);
GONSY様
迅速な対応ありがとうございます。
ご紹介の記事である
にあった
add_filter(
'snow_monkey_get_template_part_args_template-parts/content/prev-next-nav',
function( $args ) {
// ここで $html を str_replace() や preg_replace() して書き換える
$args['vars']['_in_same_term'] = true;
return $args;
}
);
を使うことで解決しました。
的確なアドバイスありがとうございました。
キタジマさん、早急にありがとうございます。
add_filter(
'snow_monkey_get_template_part_args',
function( $args ) {
$inactive = array(
'app/customizer/design/sections/category/section',
'app/customizer/design/sections/custom-taxonomy/section',
'app/customizer/design/sections/custom-post-archive/section',
'app/customizer/design/sections/post-tag/section',
);
if ( in_array( $args['slug'], $inactive ) ) {
$args['slug'] = null;
}
return $args;
}
);
これですよね?
コピペしたのですが、たしかに若干早くなりましたが、やはりカスタマイズだと時間がかかってしまいます…
仕方のないことでしょうか?
【お使いの Snow Monkey のバージョン】16.0.1
【お使いの Snow Monkey Blocks のバージョン】14.0.0
【お使いの Snow Monkey Editor のバージョン】7.0.0
【お使いのブラウザ】Chrome
【当該サイトのURL】https://realestate-sumiteru.com/blog/
### 実現したいこと
上記HPのBlogページに、最近の投稿ブロックでカスタム投稿(社長のつぶやき)を表示させています。
(CPTUIでカスタム投稿を作成。スラッグ:ceo-blog)
フォーラム内の過去の質問で、通常の投稿にNEW表示をする方法は分かったのですが、
カスタム投稿に転用させる方法が分かりません。
カスタム投稿の新着記事にNEW表示をさせる方法をご教示いただけないでしょうか。
最終的にはレイアウト:リッチメディアにて実装したいと考えております。
### 試したこと
ビューテンプレートを「投稿のビューテンプレート」とすることでカテゴリーをアイキャッチ画像上に表示させることは出来ました。
次に、過去の質問の回答として書かれていた下記コードを
add_filter(
'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
function( $args ) {
$days = 5; // NEWマークを表示する日数
$now = date_i18n( 'U' ); // 今の時間
$entry = get_the_time( 'U' ); // 投稿日の時間
$term = date( 'U',( $now - $entry ) ) / 86400;
if ( $days > $term ) {
$new_term = new stdClass();
$new_term->taxonomy = 'my-new';
$new_term->term_id = 0;
$new_term->name = 'NEW';
$args['vars']['_terms'] = [ $new_term ];
}
return $args;
}
);
My Snow Monkeyに記載、および追加CSSに下記コードを記載いたしました。
@media (min-width: 64em) {
.c-entries--text .c-entry-summary__body > .c-entry-summary__meta {
width: 16em;
}
}
.c-entries--text .c-entry-summary__meta .c-meta {
display: flex;
}
.c-entries--text .c-entry-summary__meta .c-meta__item--categories {
display: block !important;
}
こちらで通常の投稿については新着記事にNEWアイコンが表示されたのですが、カスタム投稿では表示できませんでした。snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term
の指定の仕方が異なるのではないかと思っているのですが、カスタム投稿の指定の仕方が分かりません。
よろしくお願いいたします。
◎検索結果ページにページヘッダー + タイトルを表示する
add_filter(
'snow_monkey_get_template_part_args_template-parts/common/page-header',
function( $args ) {
$args['vars']['_title'] = \Framework\Helper::get_page_title_from_breadcrumbs();
return $args;
}
);
◎検索結果ページを右サイドバーレイアウトにする
add_filter(
'snow_monkey_layout',
function( $layout ) {
return is_search()
? 'right-sidebar'
: $layout;
}
);
「2つ目」は具体的にどういうことでしょうか?
「4つ目」は僕なら HTML コーディングしたものをフックで追加するかなと思います。
—–
サポートフォーラムは同じ問題に遭遇したユーザーがフォーラムを検索することで自分で解決することができるナレッジベースを目指しています。次回からは質問内容は具体的にし、1トピック1課題で投稿をお願いします。
ここ、テンプレート引数($args
)が登場する前に実装した部分なので、他のみたいに snow_monkey_get_template_part_args
フックでは変更できないですよね。。。ちょっとやってみますのでお待ちください〜。