「最近の投稿」は
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;
}
);
で解決いたしました。
ありがとうございました。
以下に書いてある理由が理解できておりませんでした。すみません…。
♥
1
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの 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;
}
);
♥
0
ウィジェット「任意の投稿」のレイアウトをリッチメディアにしたいんですが、可能でしょうか?
んー、ちょっとこれは難しいですね…。アップデートして新しくウィジェットを追加するという手もありますが、今後ウィジェットはブロックに置き換えられていくと思うので、積極的にウィジェットを追加するのは避けたいと考えています。
もし頻繁に更新する用途でないのであれば、「Snow Monkey: 最近の投稿ウィジェット」には表示条件を変更するフックが仕込んであるので、コードで指定して特定の投稿だけを表示させることはできると思います。
snow_monkey_recent_posts_widget_args_<ウィジェットID>
それでよければコードを共有できます。
「任意の投稿」「任意のタクソノミー」ウィジェットのタイトルタグをh3やh4、内容(つまりページタイトル)をh4やh5に設定したいです。
申し訳ありませんが、基本的にウィジェット部分のタグのカスタマイズは難しいですね…。
♥
0
> snow_monkey_recent_posts_widget_args_xxx
フックで表示条件を変更できるので、任意の最近の投稿ブロックだけこのフックで投稿タイプをカスタマイズするのはどうでしょうね?
その形で調整した方が楽そうですね。それで調整してみます。
♥
0
– 固定ページ(hierarchical => true
)なページは通常日付順でソートされない
– WP コアの最新の投稿ウィジェットも「投稿」にのみ対応している
という理由から、hierarchical => true
な投稿タイプは除外するようにしています。
snow_monkey_recent_posts_widget_args_xxx
フックで表示条件を変更できるので、任意の最近の投稿ブロックだけこのフックで投稿タイプをカスタマイズするのはどうでしょうね?
♥
0
最近の投稿ブロックの場合でも、最近の投稿ウィジェットと同じ 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;
}
);
♥
0
すいません、うまくいかなかったので一旦ウィジットにもどしてしまいました・・・。
実際書いたコードは下記ですが、書き方は合ってそうでしょうか?
【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;
}
}
♥
0
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの 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つを消す
」ができません。
キャッシュを消すなどを試してみましたが、うまくいきませんでした。
うまく反映できる書き方がわかれば教えていただきたいです。
よろしくお願いいたします。
Snow Monkey Blocks v3.1.6 から、最近の投稿ブロック > 高度な設定 > アンカーで ID が設定できるようになりました。そのため、最近の投稿ブロックでも snow_monkey_recent_posts_widget_args_<id>
のフィルターフックが使用できるようになりました。
あと、Snow Monkey v5.4.8 では、ブロックではないのですが、最近の投稿ブロックと同じデザインで、カテゴリー絞り込みの最新記事一覧を表示できる「Snow Monkey: 任意のタクソノミーの投稿」ウィジェットを追加しました。記事ごとにウィジェットエリアをつくるなどすれば、それを使うこともできるかな…?と思いました。
♥
0
ウィジェットには、それぞれクエリを改変するフックを用意しています。
「Snow Monkey: 最近の投稿」の場合はこちら。
add_filter(
'snow_monkey_recent_posts_widget_args',
function( $args ) {
$args['post_type'] = [ 'post', 'news' ];
return $args;
}
);
「WPAW: 最近の投稿」の場合はこちら。
add_filter(
'inc2734_wp_awesome_widgets_recent_posts_widget_args',
function( $args ) {
$args['post_type'] = [ 'post', 'news' ];
return $args;
}
);
上記の場合は全ての「Snow Monkey: 最近の投稿」「WPAW: 最近の投稿」に反映されますが、特定のウィジェットだけに限定したい場合は snow_monkey_recent_posts_widget_args_11111
(11111 のところはウィジェットの ID に含まれる数字で、ウィジェットの HTML を見るとわかります)のようにして限定させることができます。
ちなみに、、、今バグがあって、 snow_monkey_recent_posts_widget_args
の post_type
に配列を指定することができません(any はできます)。すぐ修正アップデートかけます。
♥
0
ありがとうございます。
高さのずれが修正されました。
それと、「Snow Monkey: 最近の投稿」へのカスタム投稿タイプ追加を試みたのですが、反映されませんでした。以下の内容は間違っていますでしょうか
※カスタム投稿タイプnews_tokyo ウィジェットIDは2です。
2行目は、category_nameとpost_typeの両方でやってみました。
add_filter( 'snow_monkey_recent_posts_widget_args_2', function( $query_args ) {
$query_args['post_type'] = 'news_tokyo';
$query_args['posts_per_page'] = 6;
return $query_args;
} );
♥
0
あれ、、、これでどうでしょう?
@media (min-width: 1025px) {
#wpaw-recent-posts-inc2734_wp_awesome_widgets_recent_posts-18 {
overflow: hidden;
}
#wpaw-recent-posts-inc2734_wp_awesome_widgets_recent_posts-18 .wpaw-recent-posts__list {
display: flex;
flex-wrap: wrap;
margin: 0 -1.5rem -1.5rem;
}
#wpaw-recent-posts-inc2734_wp_awesome_widgets_recent_posts-18 .wpaw-recent-posts__item {
flex: 1 1 50%;
max-width: 50%;
margin: 0;
padding: 0 1.5rem 1.5rem;
}
}
それと、1~3が左側、4~6が右側にするのは、function.phpなどを使う場合、かなり大掛かりになってしまいますでしょうか。
そうですね、カスタマイズというか、ウィジェットをつくるレベルになると思います。
本来は「Snow Monkey: 最近の投稿」ウィジェットでレイアウトをテキスト(1行)でやろうと思ったのですが、カスタム投稿タイプが対応していないようなので、
フックで変更できますよ! snow_monkey_recent_posts_widget_args_ウィジェットID
♥
0
orderby
と order
を足さないといけないのかもしれません。下記でどうでしょう?
add_filter(
'snow_monkey_recent_posts_widget_args_2',
function( $query_args ) {
$query_args['tag'] = 'event';
$query_args['orderby'] = 'menu_order';
$query_args['order'] = 'ASC';
return $query_args;
}
);
♥
0