デフォルトではカテゴリーの移動制限は無効です。
snow_monkey_get_template_part_args_template-parts/content/prev-next-nav
フックで _in_same_term
を true
にしてみてください。
ありがとうございます! 検証環境を整えてみました。
rich-media を text に書き換えると表示も変わる
これは $args['vars']['_entries_layout'] = 'text';
の部分は常に反映されないけど、$args['vars']['_entries_layout'] = 'rich-media';
は意図していない(= 'template-parts/archive/entry/search' === $args['slug']
であろうという想定のとき)も反映されてしまう、ということですかね?
もしそうだった場合、カスタマイザー → デザイン → (question)アーカイブページ設定 → ビューテンプレートの設定が「投稿のビューテンプレート」になっていないでしょうか?「投稿のビューテンプレート」になっていると $args['name']
が投稿と同じ post
になるので条件が意図したとおりに動かなくなります。
「投稿のビューテンプレート」を使いたい場合は下記のようにするのが良いかなと思います。
add_filter(
'snow_monkey_get_template_part_args_template-parts/archive/entry/search',
function( $args ) {
if ( 'news' === get_post_type() ) { // ← 投稿タイプの判定を get_post_type() でおこなう
$args['vars']['_entries_layout'] = 'text';
} else {
$args['vars']['_entries_layout'] = 'rich-media';
}
return $args;
}
);
【お使いの Snow Monkey のバージョン】14.3.2
【お使いの Snow Monkey Blocks のバージョン】11.3.1
【お使いの Snow Monkey Editor のバージョン】5.0.6
【お使いのブラウザ】Google Chrome
いつもお世話になっております。
検索結果の記事一覧レイアウトを次のようにしたいです。
・プラグイン(Search & Filter)で実装した絞り込み検索結果(条件:投稿タイプ ‘question’):テキスト
・通常の検索結果:リッチメディア
下記記事を参考にコードを書いたのですが、if文がうまく書けませんでした。
参考:archiveの種類別にc-entriesのスタイルを変えたい
add_filter(
'snow_monkey_get_template_part_args',
function( $args ) {
if ( 'template-parts/archive/entry/search' === $args['slug'] ) {
if ( 'question' === $args['name'] ) {
$args['vars']['_entries_layout'] = 'text';
} else {
$args['vars']['_entries_layout'] = 'rich-media';
}
}
return $args;
}
);
rich-media
を text
に書き換えると表示も変わるので、if文の条件の仕方が違うのだと考えています。
どのように指定したら良いでしょうか。
よろしくお願いいたします。
早速にありがとうございます!!!(涙
add_filter(
'snow_monkey_get_template_part_args_template-parts/common/entries/entries/posts',
function( $args ) {
if ( 'ir' === $args['name'] ) {
$args['vars']['_display_item_terms'] = true;
$args['vars']['_display_item_meta'] = true;
}
return $args;
}
);
日付情報とターム名を表示したいので、上記としました。
まだまだわからないことも多いですが、このテーマのカスタマイズ感の良さに平伏しておりますw
設定をデフォルトにすると c-entry-summary__meta が非表示になってしまうんですが、
これはターム名のラベルの表示が、ということですよね?
ターム名のラベルの表示はテンプレート引数をフックで書き換えることで変更できます。
タームをビューテンプレートはデフォルトのままで、
add_filter(
'snow_monkey_get_template_part_args_template-parts/common/entries/entries/posts',
function( $args ) {
if ( 'カスタム投稿タイプ名' === $args['name'] ) {
$args['vars']['_display_item_terms'] = true;
}
return $args;
}
);
とするとどうでしょうか?
v14.1.0 で、コードを追加することでシェアボタンが表示できるようにしてみました。
add_filter(
'snow_monkey_get_template_part_args_templates/view/woocommerce-single-product',
function( $args ) {
$args['vars']['_display_top_share_buttons'] = true; // 上部に出したいとき
$args['vars']['_display_bottom_share_buttons'] = true; // 下部に出したいとき
return $args;
}
);
これで表示されはするんですが、WooCommerce の商品ページは普通の記事ページと違ってタイトルがページ上部に表示されないので、シェアボタンの位置がちょっと微妙になるなぁと個人的には思いました。微妙であれば WooCommerce のフックを調べて、そこに対してシェアボタンを表示するコードを突っ込むみたいな感じになるかなと思います。
【Snow Monkey のバージョン】14.0.7
【Snow Monkey Blocks のバージョン】11.1.0
【Snow Monkey Editor のバージョン】5.0.3
【Snow Monkey Diet のバージョン】0.6.1
【ブラウザ】Chrome
### 実現したいこと
カスタマイザーの「Snow Monkey コミュニティ」セクションを無効化したいです
### 発生している問題
Snow Monkey Diet で「カスタマイザーの「Snow Monkey コミュニティ」セクションを無効化」にチェックを入れて変更を保存しても反映されないのです
### 試したこと
(1)Snow Monkey Dietの削除、再インストール
(2)カスタムCSSに以下を追加してみました
#accordion-section-snow-monkey-community{
display: none;
}
(3)my-snow-monkeyに以下を追加してみました
add_filter(
'snow_monkey_get_template_part_args',
function( $args ) {
$inactive = [
'app/customizer/snow-monkey-community/section',
];
if ( in_array( $args['slug'], $inactive ) ) {
$args['slug'] = null;
}
return $args;
}
);
(4)my-snow-monkeyに以下を追加してみました
add_action( 'snow_monkey_get_template_part_args', 'my_remove_action' );
function my_remove_action() {
remove_section( 'snow-monkey-community');
}
勉強不足でお恥ずかしいです
どうかよろしくお願いします
アクツさん、キタジマさん ご回答ありがとうございます。
キタジマさんのコードでうまく行きました!
snow_monkey_get_template_part_args_template-parts/ の使い方がいまひとつわからなかったんですが、これで他にも応用できそうです。
すぐにご回答いただいていたのに、別件でバタバタしていて試すのが遅くなってしまいました。
申し訳ないです。
ありがとうございました!
クローズしますね。
add_filter(
'snow_monkey_get_template_part_args_template-parts/content/entry/entry',
function( $args ) {
$args['vars']['_display_comments'] = false;
return $args;
}
);
でデフォルトのコメントエリアを消しつつ、
template-parts/content/entry/footer/footer.php
を上書きしてコメントエリアを追加する感じですかねー。template-parts/content/entry/footer/footer.php
は結構大きいテンプレートなので、今後のメンテナンスのことを考えると個人的には上書きはあまりオススメできません。メンテナンスとカスタマイズの重要度を天秤にかけて判断してもらうと良いかなと思います。
これをMy Snow Monkeyで実現する方法はありますか?
できなくはないですが、結局テンプレートを上書きすることになるので、子テーマでやったほうが素直かなと思います。
複数カテゴリーがチェックしてある場合など、実際の運用状況を考慮するともうちょっと調整が必要だと思いますが、ざっくりこんな感じですかねー。
add_filter(
'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
function( $args ) {
if ( 'post' !== $args['name'] ) {
return $args;
}
$_terms = get_the_terms( get_the_ID(), 'category' );
$new_terms = [];
foreach ( $_terms as $_term ) {
$ancestors = get_ancestors( $_term->term_id, 'category' );
if ( $ancestors ) {
$ancestors = array_reverse( $ancestors );
foreach ( $ancestors as $ancestor_id ) {
$new_term = get_term( $ancestor_id, 'category' );
if ( ! is_wp_error( $new_term ) ) {
$new_terms[ $ancestor_id ] = $new_term;
}
}
$new_terms[ $_term->id ] = $_term;
}
}
$args['vars']['_terms'] = $new_terms ? $new_terms : $_terms;
return $args;
}
);
【お使いの Snow Monkey のバージョン】 14.0.3
【お使いの Snow Monkey Blocks のバージョン】 11.0.3
【お使いの Snow Monkey Editor のバージョン】 5.0.1
【お使いのブラウザ】 Mac Chrome
【当該サイトのURL】
### 実現したいこと
Snow Monkey Blocks「任意のタクソノミーの投稿」で任意のタクソノミーの記事一覧を表示させる際に、通常だと子カテゴリーだけの表示になるのですが、
1. 親カテゴリー
2. 子カテゴリー
3. (存在する場合には)孫カテゴリー
という順で出力をさせてたいと模索しています。
### 発生している問題
add_filter(
'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term',
function( $args ) {
if ( 'post' !== $args['name'] ) {
return $args;
}
$_terms = get_the_terms( get_the_ID(), 'category' );
if ( $_terms ) {
$_term = $_terms[0];
if ( 0 !== $_term->parent ) {
// ここからどううまいことやってあげたらいいのかがわからない…
}
}
・・・
return $args;
}
);
### 試したこと
上記のように試しているのですが、スマートなカテゴリ並び替えをどう実装するべきか、みなさんの英知をお貸しくださいませ!
僕も未検証で申し訳ないですが、$args['vars']['_message']
かも?
add_filter(
'snow_monkey_get_template_part_args_template-parts/archive/entry/content/none',
function( $args ) {
$args['vars']['_message'] = '投稿がないです!';
return $args;
}
);
川井さんこんにちは!
テンプレみていって、なんとなくこれかなと思ったコード書いておきます。
まったくの未検証(そしてもっと良いフックがあるかも)なので、ほんのご参考程度ぐらいで(^^;)
/**
* @param array $args
* @param string slug
* @param string name
* @param array vars
* @return array
*
* コンテンツが1つもない場合のメッセージ変更
*/
add_filter(
'snow_monkey_get_template_part_args_template-parts/archive/entry/content/content-none',
function( $args ) {
$args['_message'] = '変えたいメッセージにする'; //特定の条件のときだけの場合はif文で条件分岐して変更してみてください
return $args;
}
);
【お使いの Snow Monkey のバージョン】14.0.2
【お使いの Snow Monkey Blocks のバージョン】11.0.2
【お使いの Snow Monkey Diet のバージョン】0.6.1
【お使いの Snow Monkey Editor のバージョン】5.0.1
【お使いの Snow Monkey Forms のバージョン】1.5.0
【お使いのブラウザ】Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36
【当該サイトのURL】
### 実現したいこと
任意のカテゴリーに属する投稿一覧を新しい投稿順ではなく古い投稿順にする方法
### 発生している問題
order
などを書き換えてもうまくいってない。
### 試したこと
単純に以下のようにカテゴリー内記事一覧を表示する際に以下のように書いてみましたがうまくいかず…
add_filter(
'snow_monkey_get_template_part_args_template-parts/archive/archive',
function( $args ) {
if ( is_category() ) {
$args['orderby'] = 'menu_order';
$args['order'] = 'ASC';
return $args;
} else {
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;
}
);