-
投稿者投稿
-
2023年7月18日 12:51 PM #128652
【お使いの Snow Monkey のバージョン】バージョン: 20.5.1
【お使いの Snow Monkey Blocks のバージョン】バージョン 19.10.1
【お使いの Snow Monkey Editor のバージョン】バージョン 9.2.5
【お使いのブラウザ】chrome
【当該サイトのURL】https://gojiai.info/_lib/### 実現したいこと
・投稿のサムネイルと題名の表示順を逆にしたい
・ブログの題名が長すぎた場合にデザインが崩れるので表示されるブログ題名の表示文字数を25文字に制限し残りは…で表示したい
・題名の下にリンクつきボタンを表示したいこの画像のデザインを実現したいと思っています
現在は
SNOW MONKEY BLOCKSの「グリッド」を挿入。2カラムに設定。
左カラム「任意のタクソノミーの投稿」右カラム「最近の投稿」を挿入しています。
記事を更新したときに自動で表示してほしいのでこの方法をとっています。
### 発生している問題
出来ない
### 試したこと
過去のフォーラムを参照、ネット検索
・投稿のサムネイルと題名の表示順を逆にしたい
→わからない・題名の下にリンクつきボタンを表示したい
→疑似要素でやってみたら表示出来たのですがアクセスビリティを考えるとhtmlで入れた方がやはりいいだろうと思いなおしました。PHPでの挿入になると考えましたがどう入れたらいいのかわからずでした。お手数ではありますがご教示いただけると幸いです。
♥ 0いいねをした人: 居ません2023年7月18日 1:59 PM #128660Snow Monkey はフックで一覧部分の各項目部分をカスタマイズできるので、それを使って完全にオリジナルの HTML で出力するのもありなのかなと思いました。下記の記事にサンプルコードがあります。
記事では
snow_monkey_pre_template_part_render_template-parts/loop/entry-summary
で一覧の各項目(.c-entry-summary
) をカスタマイズしていますが、フック名を変えれば一覧部分全体(.c-entries
)も完全にオリジナルの HTML で出力させることもできます。2023年7月21日 1:50 PM #128800キタジマさん
ありがとうございます。新しい機能なんて便利なのでしょうか…!記事を参考にしながらデバックモードでslugの部分を確認して作ってみました。
// 記事一覧部分全体(template-parts/loop/entry-summary)をカスタマイズ add_filter( 'snow_monkey_pre_template_part_render_template-parts/loop/entry-summary', function( $html, $name, $vars ) { // 最近の投稿以外の場合は処理しない if ( $vars['_context'] !== 'snow-monkey-blocks/recent-posts' || $vars['_context'] !== 'snow-monkey-blocks/recent-posts' ) { return $html; } // _entries_id が # 以外のときは処理しない アンカー名がhome_picku以外は処理しない if ( $vars['_entries_id'] !== '#home_pickup' ) { // clientId かアンカー名が入る return $html; } ob_start(); ?> <div> <div><?php the_title(); ?></div> <div><?php echo esc_html( get_post_meta( get_the_ID(), 'test', true ) ); ?></div> <a class="<?php the_permalink(); ?>">詳しく見る</a> <div><?php the_post_thumbnail('thumbnail'); ?></div> </div> <?php return ob_get_clean(); }, 10, 3 );
真ん中のこの部分のみうまくいきませんでした。
// _entries_id が # 以外のときは処理しない アンカー名がhome_pickup以外は処理しない if ( $vars['_entries_id'] !== '#home_pickup' ) { // clientId かアンカー名が入る return $html; }
というのもコメントに// clientId かアンカー名が入る とあるのですがこれが何を指すのかわからないままとりあえずやったためです。
clientId→検索するもわからず
アンカー名→htmlアンカー?とりあえず試してみたものの失敗この2つについてはどこを見ればわかるでしょうか?既出でしたら申し訳ありません。
♥ 0いいねをした人: 居ません2023年7月21日 4:40 PM #128819あ、これ内部的なmので HTML 上では確認できなかったかもです。要は「このブロックだけ」フックでカスタマイズしたい、という場合に、そのブロックを何らかの値で識別する必要があります。アンカーが指定してある場合はそれで識別できますが、ない場合は普通には識別できないので、内部的に id を発行してそれをひっそり持ってる、みたいな感じです。
if ( $vars['_entries_id'] !== '#home_pickup' ) { // clientId かアンカー名が入る return $html; }
↓
var_dump( $vars['_entries_id'] ); if ( $vars['_entries_id'] !== '#home_pickup' ) { // clientId かアンカー名が入る return $html; }
としたら値が画面上に出力されて確認できると思うので試してみてください。
2023年7月22日 5:22 PM #128841 -
投稿者投稿
- トピック「投稿のサムネイルと題名の表示順を逆にしボタンを表示したい」には新しい返信をつけることはできません。