ブログ一覧(アーカイブ)を「テキスト」にしたときもカテゴリーを表示させたい

  • このトピックには8件の返信、2人の参加者があり、最後に土居 安佳里により2ヶ月前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #54346
    土居 安佳里
    参加者
    3

    【お使いの Snow Monkey のバージョン】
    10.10.5

    ===

    アーカイブページの表示を「テキスト」にしたときは日付とタイトルしか表示されませんが、カテゴリーも表示させたい場合はどうすればいいでしょうか。

    テンプレートをカスタマイズしようと思ったのですが、テンプレート構造が複雑なのと、もっとスマートにカスタマイズできればと思ってお聞きしました…🙇‍♂️

    もしよろしければ、著者も表示できると嬉しいんですが…!

    0
    #54348
    キタジマ タカシ
    キーマスター
    286

    下記のトピックで、先頭にカテゴリーを追加する方法を書いています。

    もしよろしければ、著者も表示できると嬉しいんですが…!

    カテゴリー表示もなのですが、テキストレイアウトのときはスペースが厳しいので、例えばカテゴリーと著者は下に表示して1項目2行にする、のようなデザインだと収まりが良いかもしれません。もしデザインを提示いただけるのであれば、コードを提示しやすいです!

    0
    #54349
    土居 安佳里
    参加者
    3

    おお…これ、display:none;してただけなんですね…!
    そして既出の質問で失礼しました!

    こんなふうになってほしいなというデザインを添付します。すごく雑で申し訳ないのですが…。

    よろしくお願いいたします。

    0
    #54375
    キタジマ タカシ
    キーマスター
    286

    おお…これ、display:none;してただけなんですね…!

    そうなんです。本当は HTML を出し分けたほうが良いのかもですが、こっちのほうがちょっとした CSS でのカスタマイズはしやすいのかなと思ってこうしています。

    こんなふうになってほしいなというデザインを添付します。

    ありがとうございます!わかりやすいです。ちょっとやってみますのでお待ちくださいまし…

    1
    #54376
    キタジマ タカシ
    キーマスター
    286

    下記のコードを My Snow Monkey に貼り付けてください。子テーマをお使いの場合は、子テーマの functions.php でも構いません。

    add_filter(
    	'snow_monkey_pre_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) {
    			if ( isset( $vars['_entries_layout'] ) && 'text' === $vars['_entries_layout'] ) {
    				ob_start();
    				?>
    				<a href="<?php the_permalink(); ?>">
    					<section class="c-entry-summary c-entry-summary--post c-entry-summary--my-text">
    						<div class="c-entry-summary--my-text__meta">
    							<ul class="c-meta">
    								<li class="c-meta__item c-meta__item--published">
    									<?php the_time( get_option( 'date_format' ) ); ?>
    								</li>
    								<li class="c-meta__item c-meta__item--author">
    									<?php echo get_avatar( get_the_author_meta( 'ID' ) ); ?><?php echo esc_html( get_the_author() ); ?>
    								</li>
    								<li class="c-meta__item c-meta__item--categories">
    									<?php
    									$categories = get_the_terms( get_the_ID(), 'category' );
    									if ( $categories ) {
    										foreach ( $categories as $category ) {
    											?>
    											<span class="wpaw-term wpaw-term--category-<?php echo esc_attr( $category->term_id ); ?>"><?php echo esc_html( $category->name ); ?></span>
    											<?php
    										}
    									}
    									?>
    								</li>
    							</ul>
    						</div>
    
    						<div class="c-entry-summary__body">
    							<div class="c-entry-summary__header">
    								<?php \Framework\Helper::get_template_part( 'template-parts/loop/entry-summary/title/title' ); ?>
    							</div>
    						</div>
    					</section>
    				</a>
    				<?php
    				return ob_get_clean();
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );

    既存の HTML 構造だと CSS だけではできなさそうだったので、HTML もまるごと書き換えるようにしました。ちょっとコードが長くてわかりにくいかもしれませんが、HTML の部分にだけ注目してもらえば調整等しやすいかもしれません。

    1
    #54388
    土居 安佳里
    参加者
    3

    ありがとうございます!!

    全部をまるっと記事へのリンクではなく、タイトルは記事へのリンク、カテゴリーはカテゴリー一覧へのリンクが望ましいかなと感じたので、自分で以下のようにしたのですが、カテゴリーへのリンクの記載がわからず…。

    PHP全然わかってないので恐らく初歩的なことなのかと思うのですが…お手間をかけてすみません🙇‍♂️

    add_filter(
    	'snow_monkey_pre_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) {
    			if ( isset( $vars['_entries_layout'] ) && 'text' === $vars['_entries_layout'] ) {
    				ob_start();
    				?>
    				<div>
    					<section class="c-entry-summary c-entry-summary--post c-entry-summary--my-text">
    						<div class="c-entry-summary--my-text__meta">
    							<ul class="c-meta">
    								<li class="c-meta__item c-meta__item--published">
    									<?php the_time( get_option( 'date_format' ) ); ?>
    								</li>
    								<li class="c-meta__item c-meta__item--author">
    									<?php echo get_avatar( get_the_author_meta( 'ID' ) ); ?><?php echo esc_html( get_the_author() ); ?>
    								</li>
    								<li class="c-meta__item c-meta__item--categories">
    									<?php
    									$categories = get_the_terms( get_the_ID(), 'category' );
    									if ( $categories ) {
    										foreach ( $categories as $category ) {
    											?>
    											<span class="wpaw-term wpaw-term--category-<?php echo esc_attr( $category->term_id ); ?>"><?php echo esc_html( $category->name ); ?></span>
    											<?php
    										}
    									}
    									?>
    								</li>
    							</ul>
    						</div>
    
    						<div class="c-entry-summary__body">
    							<div class="c-entry-summary__header">
    								<a href="<?php the_permalink(); ?>">
    									<?php \Framework\Helper::get_template_part( 'template-parts/loop/entry-summary/title/title' ); ?>
    								</a>
    							</div>
    						</div>
    					</section>
    				</div>
    				<?php
    				return ob_get_clean();
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );

    ごめんなさい、何度やってもコードになってくれない…

    1
    #54393
    土居 安佳里
    参加者
    3

    あ、すみません、カテゴリーだけでなく著者リンクもですね…。

    0
    #54399
    キタジマ タカシ
    キーマスター
    286

    これでどうでしょう? Snow Monkey のデフォルトは a で全体が囲われる前提の CSS になっているので、CSS はちょっと調整が必要です。

    add_filter(
    	'snow_monkey_pre_template_part_render',
    	function( $html, $slug, $name, $vars ) {
    		if ( 'template-parts/loop/entry-summary' === $slug && 'post' === $name ) {
    			if ( isset( $vars['_entries_layout'] ) && 'text' === $vars['_entries_layout'] ) {
    				ob_start();
    				?>
    				<section class="c-entry-summary c-entry-summary--post c-entry-summary--my-text">
    					<div class="c-entry-summary--my-text__meta">
    						<ul class="c-meta">
    							<li class="c-meta__item c-meta__item--published">
    								<?php the_time( get_option( 'date_format' ) ); ?>
    							</li>
    							<li class="c-meta__item c-meta__item--author">
    								<a href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>">
    									<?php echo get_avatar( get_the_author_meta( 'ID' ) ); ?><?php echo esc_html( get_the_author() ); ?>
    								</a>
    							</li>
    							<li class="c-meta__item c-meta__item--categories">
    								<?php
    								$categories = get_the_terms( get_the_ID(), 'category' );
    								if ( $categories ) {
    									foreach ( $categories as $category ) {
    										?>
    										<a class="wpaw-term wpaw-term--category-<?php echo esc_attr( $category->term_id ); ?>" href="<?php echo esc_url( get_term_link( $category ) ); ?>"><?php echo esc_html( $category->name ); ?></a>
    										<?php
    									}
    								}
    								?>
    							</li>
    						</ul>
    					</div>
    
    					<div class="c-entry-summary__body">
    						<div class="c-entry-summary__header">
    							<a href="<?php the_permalink(); ?>">
    								<?php \Framework\Helper::get_template_part( 'template-parts/loop/entry-summary/title/title' ); ?>
    							</a>
    						</div>
    					</div>
    				</section>
    				<?php
    				return ob_get_clean();
    			}
    		}
    		return $html;
    	},
    	10,
    	4
    );

    ごめんなさい、何度やってもコードになってくれない…

    お手数おかけしてすみません!bbPress はブロックコードも ``` じゃなくて で囲まないといけないみたいなんです。テキストモードだと「code」というボタンがでていると思うので、コードを囲ってそのボタンを押してもらうと良いかと思います(もしくは pre タグも使えるのでそれで囲ってもらっても大丈夫です)。

    0
    #54401
    土居 安佳里
    参加者
    3

    わーー、バッチリです!!

    本来のSnow Monkeyの使い方から外れたわがままに対応していただき、本当にありがとうございました!
    大変助かりました!

    コードの件もありがとうございます…!お手数おかけしました。

    1
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • トピック「ブログ一覧(アーカイブ)を「テキスト」にしたときもカテゴリーを表示させたい」には新しい返信をつけることはできません。