投稿のサムネイルと題名の表示順を逆にしボタンを表示したい

0
いいねをした人: 居ません
  • このトピックには4件の返信、2人の参加者があり、最後にakosanにより1年、 4ヶ月前に更新されました。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #128652
    akosan
    参加者
    31

    【お使いの 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
    いいねをした人: 居ません
    #128660
    アバター画像キタジマ タカシ
    参加者
    2421

    Snow Monkey はフックで一覧部分の各項目部分をカスタマイズできるので、それを使って完全にオリジナルの HTML で出力するのもありなのかなと思いました。下記の記事にサンプルコードがあります。

    記事では snow_monkey_pre_template_part_render_template-parts/loop/entry-summary で一覧の各項目(.c-entry-summary) をカスタマイズしていますが、フック名を変えれば一覧部分全体(.c-entries)も完全にオリジナルの HTML で出力させることもできます。

    1
    いいねをした人:
    #128800
    akosan
    参加者
    31

    キタジマさん

    ありがとうございます。新しい機能なんて便利なのでしょうか…!記事を参考にしながらデバックモードで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
    いいねをした人: 居ません
    #128819
    アバター画像キタジマ タカシ
    参加者
    2421

    あ、これ内部的な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;
    }

    としたら値が画面上に出力されて確認できると思うので試してみてください。

    3
    いいねをした人:
    #128841
    akosan
    参加者
    31

    キタジマさん、ありがとうございます。理解できました。

    うまくいきましたのでトピックを閉じさせていただきます。

    1
    いいねをした人:
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • トピック「投稿のサムネイルと題名の表示順を逆にしボタンを表示したい」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。