すみません!訂正です。直りました。こちらで大丈夫です。
ひとまず、IDは入れずにそのまま
//最近の投稿から特定カテゴリーをはずす
add_filter(
'snow_monkey_recent_posts_widget_args',
function( $args ) {
$args['category__not_in'] = [ 19 ];
return $args;
}
);
ありがとうございます。こちらのトピックしばらくしたら閉じますね。
あ、そのフックだと効くパラメーターと効かないパラメーターがあるみたいです。
こっちだとどうでしょうか?
add_filter(
'snow_monkey_recent_posts_widget_args',
function( $args ) {
$args['category__not_in'] = [ 1 ];
return $args;
}
);
snow_monkey_recent_posts_widget_args
だとすべての最近の投稿ブロックに影響するので、ブロックの設定で適当なアンカー(id)を設定して、snow_monkey_recent_posts_widget_args_{id}
のフックを使うほうが良いかもです。
お手数ですが任意のタクソノミーで(trouble,found)というカテゴリーだけを表示する方法をお教えいただきたいです。よろしくお願いします。
以下試そうとしていること
// 最新の投稿ブロックで任意のカテゴリー(trouble,found)だけを表示する
add_filter(
'snow_monkey_recent_posts_widget_args',
function( $query_args ) {
$tax_query = array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'rouble', 'found' ),
),
);
$query_args['tax_query'] = $tax_query;
return $query_args;
}
);
あれ…。ちょっと僕も原因がわかりませんが、タイミングが遅いのかもしれません。もっと早いタイミングでやるとすると
add_filter(
'snow_monkey_recent_posts_widget_args',
function( $query_args ) {
$query_args['orderby'] = 'modified';
return $query_args;
}
);
これでいけると思います。
最近の投稿ブロック、任意のタクソノミーブロックだと固定ページは選択できないですね。。。
方法としては、
– このページの子ページブロックを使う
– 最近の投稿ブロックのフィルターフック snow_monkey_recent_posts_widget_args
で post_types を書き換えて固定ページを表示するようにする
という感じでしょうか。
参考:
「最近の投稿」は
add_filter(
'snow_monkey_recent_posts_widget_args',
function ($query_args) {
$query_args['orderby'] = 'menu_order';
$query_args['order'] = 'ASC';
return $query_args;
}
);
「任意のタクソノミー」は
add_filter(
'snow_monkey_taxonomy_posts_widget_args',
function ($query_args) {
$query_args['orderby'] = 'menu_order';
$query_args['order'] = 'ASC';
return $query_args;
}
);
で解決いたしました。
ありがとうございました。
以下に書いてある理由が理解できておりませんでした。すみません…。
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】10.3.0
【お使いのブラウザ】chrome
【当該サイトのURL】(公開できる場合は書いていただいたほうがスムーズです)
===
バージョン更新後
フロントページにカスタム投稿の最新投稿(リッチメディア)を表示していたのですが、右上にでていたカテゴリー分類が表示されなくなりました。アイキャッチのみ表示されています。
最近の投稿は以下の通りの操作で表示しておりました。
========================================
フロントページにsnowmonkey-blockで、最近の投稿(snowmonkey) を挿入。
HTML アンカー にて id 4をふり
my-snow-monkey.php
に
// 施工例最新のウィジェットが表示する記事の条件を変更する
add_filter( 'snow_monkey_recent_posts_widget_args_4', function( $query_args ) {
$query_args['post_type'] = 'dcsworks';
return $query_args;
} );
を入れて、表示しておりました。バージョンアップ前は表示されてました。
「最近の投稿」ブロックとコードの組み合わせで実現できます。
まず、一覧を表示したい場所に、Snow Monkey Blocks の「最近の投稿」ブロックを挿入してください。そして、そのブロックの高度な設定 > HTML アンカーに「search」と入力して保存してください。
次に、My Snow Monkey プラグイン、もしくは子テーマの functions.php
に下記のコードを追加してください。これで、高度な設定 > HTML アンカーに「search」と入力したブロックは、「村上宥快」の検索結果を表示するようになります(全件表示ではない点ご注意ください)。
add_filter(
'snow_monkey_recent_posts_widget_args_search',
function( $query_args ) {
$query_args['post_type'] = [ 'post', 'page' ];
$query_args['s'] = '村上宥快';
var_dump( $query_args );
return $query_args;
}
);
ウィジェット「任意の投稿」のレイアウトをリッチメディアにしたいんですが、可能でしょうか?
んー、ちょっとこれは難しいですね…。アップデートして新しくウィジェットを追加するという手もありますが、今後ウィジェットはブロックに置き換えられていくと思うので、積極的にウィジェットを追加するのは避けたいと考えています。
もし頻繁に更新する用途でないのであれば、「Snow Monkey: 最近の投稿ウィジェット」には表示条件を変更するフックが仕込んであるので、コードで指定して特定の投稿だけを表示させることはできると思います。
snow_monkey_recent_posts_widget_args_<ウィジェットID>
それでよければコードを共有できます。
「任意の投稿」「任意のタクソノミー」ウィジェットのタイトルタグをh3やh4、内容(つまりページタイトル)をh4やh5に設定したいです。
申し訳ありませんが、基本的にウィジェット部分のタグのカスタマイズは難しいですね…。
> snow_monkey_recent_posts_widget_args_xxx
フックで表示条件を変更できるので、任意の最近の投稿ブロックだけこのフックで投稿タイプをカスタマイズするのはどうでしょうね?
その形で調整した方が楽そうですね。それで調整してみます。
– 固定ページ(hierarchical => true
)なページは通常日付順でソートされない
– WP コアの最新の投稿ウィジェットも「投稿」にのみ対応している
という理由から、hierarchical => true
な投稿タイプは除外するようにしています。
snow_monkey_recent_posts_widget_args_xxx
フックで表示条件を変更できるので、任意の最近の投稿ブロックだけこのフックで投稿タイプをカスタマイズするのはどうでしょうね?
最近の投稿ブロックの場合でも、最近の投稿ウィジェットと同じ snow_monkey_recent_posts_widget_args
フックが利用できます。
普通に snow_monkey_recent_posts_widget_args
にフックしちゃうと全ての最近の投稿ウィジェットに反映されてしまうので、変更したい最近の投稿ブロックの高度な設定 > アンカーのところに適当な文字列を入力すると、 snow_monkey_recent_posts_widget_args_アンカーに入力した文字列
のフックが使えるようになります。
こんな感じでどうでしょう?
add_filter(
'snow_monkey_recent_posts_widget_args_アンカーで入力した文字列',
function( $query_args ) {
$query_args['posts_per_page'] = 20;
return $query_args;
}
);
すいません、うまくいかなかったので一旦ウィジットにもどしてしまいました・・・。
実際書いたコードは下記ですが、書き方は合ってそうでしょうか?
【function.php】
// ID 番号(HTMLアンカー)が pickup の最近の投稿ブロックが表示する記事の条件を変更する
// pickup タグ + ランダム + 4件
// PCでは最後の1件を非表示にして 、PCでは3件表示、スマホ等では4件表示してレイアウトを調整するようにCSSで指定する
add_filter( 'snow_monkey_recent_posts_widget_args_pickup', function( $query_args ) {
$query_args['tag'] = 'pickup';
$query_args['posts_per_page'] = 4;
$query_args['orderby'] = 'rand';
return $query_args;
} );
【CSS】
/**SNOWMONKEY最新の投稿ブロックのID(HTMLアンカー)がpickupの場合(今回はPICKUP部分) */
/* PC では最後の1個を消す */
/* 特定IDのウィジェットにだけ適用するため id セレクタ(#snow_monkey_blocks_recent_posts-pickup)を指定した */
@media (min-width: 64em) {
#snow_monkey_blocks_recent_posts-pickup .snow-monkey-recent-posts .c-entries__item:last-child {
display: none;
}
}
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】v5.6.1
【お使いのブラウザ】chome,safari,firefox
【当該サイトのURL】(公開できる場合は書いていただいたほうがスムーズです)
===
以前に下記のトピックで質問した内容ですが、
最近の投稿ブロックにidが指定できるようになったので、
ウィジットからブロックに切り替えたいと思っています。
この中のカスタマイズで、
function.phpに下記のコードを書き、ID部分をブロックでHTMLアンカーに指定した文字列に変更しました。
// ID 番号が 12345 のウィジェットが表示する記事の条件を変更する
// pickup タグ + ランダム + 4件
add_filter( 'snow_monkey_recent_posts_widget_args_12345', function( $query_args ) {
$query_args['tag'] = 'pickup';
$query_args['posts_per_page'] = 4;
$query_args['orderby'] = 'rand';
return $query_args;
} );
そして、CSSにてIDセレクタを使って下記のように書きました。(xxxはHTMLアンカーで指定した文字列)
/* PC では最後の1個を消す */
/* 下記の例だと Snow Monkey: 最近の投稿ウィジェット全部に反映されるので、特定のウィジェットにだけ適用したいなら id セレクタで指定したほうが良いかも */
@media (min-width: 64em) {
.snow_monkey_blocks_recent_posts-xxx .c-entries__item:last-child {
display: none;
}
}
この場合に、fanction.phpの記述はきちんと反映されるのですが、
CSSの記述が反映されないようで、「PCでは最後の1つを消す
」ができません。
キャッシュを消すなどを試してみましたが、うまくいきませんでした。
うまく反映できる書き方がわかれば教えていただきたいです。
よろしくお願いいたします。