-
投稿者検索結果
-
2021年2月18日 10:18 AM #68410
返信が含まれるトピック: 「最近の投稿」にカスタムフィールドを追加したい
キタジマさん
早々にご返信いただきましてありがとうございます!
お返事が遅くなりまして申し訳ございません!上記だとやはり希望通りの動作にならず試行錯誤していただのですが、こちらの記事を参考にさせていただきましたらうまくいきました!
■参考記事
カスタム投稿のアーカイブ(記事一覧)で、タイトルの下にカスタムフィールドの内容を表示するmy-snow-monkeyに記載した内容は以下のとおりです(一部のみの書きかえですが、他の方の参考になれば)。
もし内容に不適切な箇所があればご指摘いただければ助かります。add_filter( 'snow_monkey_template_part_render_template-parts/loop/entry-summary', //entry-summary-postが対象 function( $html ) { if (get_post_type() === 'works'): //カスタム投稿worksに限定する // 以降の出力を変数に格納する ob_start(); ?> <div class="client-name"> <p><?php echo esc_html (get_field('client_name')); ?></p> </div> <?php // 変数に格納する $works_client = ob_get_clean(); // </header>を書き換える return str_replace( '</header>', '</header>'.$works_client, $html ); endif; return $html; } );
どうぞよろしくお願いいたします。
♥ 1いいねをした人: 居ません2021年2月3日 9:18 AM #66985返信が含まれるトピック: カスタム投稿一覧ページにテキストを追加したい
HTML の内容を書き換えるフィルターフックは
snow_monkey_template_part_render_テンプレートのスラッグ
となります。一覧部分のサムネイルのテンプレートを書き換えたい場合は
snow_monkey_template_part_render_template-parts/loop/entry-summary/figure/figure
です。また、一覧部分のサムネイル用のテンプレートには
</header>
が無いので</header>
を対象に置換しようとしても機能しません。return
のところをreturn $html . $cv_comment;
に書き換えるとどうでしょうか?
これで動かないようだったら調査してみます!
♥ 0いいねをした人: 居ません2021年1月22日 5:38 PM #66080返信が含まれるトピック: 任意のタクソノミーブロックで表示される投稿の投稿者を削除したい
キタジマ様
一応確認ですが、投稿者の HTML を削除するのは「任意のタクソノミーブロック」だけで、カテゴリーアーカイブページの一覧部分からは消さないということであっていますでしょうか?
投稿者のHTMLはカテゴリーアーカイブページの一覧部分、投稿記事メタ情報などすべてから削除したいのです。
なお、カテゴリーアーカイブページの一覧部分については以前にキタジマ様からフックを教えていただきましたので削除出来ております。
また、投稿記事メタ情報部分については、本フォーラムの過去記事に該当するフックが紹介されておりましたのでこれも削除出来ております。
後は、固定ページに作成した任意のタクソノミーブロックにのみ投稿者が表示されていますので、これを削除したいということです。
一応現在のフックを掲載しますので、問題点などありましたらご指摘いただけますと助かります。
/** * 投稿ページのメタ情報の投稿者を削除 */ add_action( 'snow_monkey_entry_meta_items', function() { remove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_author', 30 ); }, 9 ); /** * カテゴリーページの投稿者を削除 */ add_filter( 'snow_monkey_template_part_render_template-parts/loop/entry-summary/meta/meta', function( $html, $name, $vars ) { // カテゴリーアーカイブ表示時、かつ記事一覧部分のとき. if ( is_category() && 'archive' === $vars['_context'] ) { return preg_replace( '| <ul> <li class="c-meta__item c-meta__item--author">.*?</li> </ul> |ms', '', $html ); } return $html; }, 10, 3 );
よろしくお願いいたします。
♥ 0いいねをした人: 居ません2021年1月22日 4:02 PM #66075返信が含まれるトピック: カスタム投稿のアーカイブ(記事一覧)で、タイトルの下にカスタムフィールドの内容を表示する
サニタイズの視点、完全に飛んでましたので助かります。
esc_htmをつかって、下記のようなカスタマイズとして利用させていただきます。
ありがとうございます!add_filter( 'snow_monkey_template_part_render_template-parts/loop/entry-summary', //entry-summary-postが対象 function( $html ) { if (get_post_type() === 'item'): //カスタム投稿 itemに限定する // 以降の出力を変数に格納する ob_start(); ?> <div class="price__wrapper"> <p>税込<?php echo esc_html(number_format(get_field('price'))); ?>円</p> </div> <?php // 変数に格納 $kw_price = ob_get_clean(); // </header>を書き換える return str_replace( '</header>', '</header>'.$kw_price, $html ); endif; return $html; } );
2021年1月9日 1:16 PM #65065返信が含まれるトピック: 関連記事の記事タイトルを 2行目以降は表示せずに「…」にしたい
My Snow Monkey プラグインに下記のコードを貼り付けてみてください。
add_filter( 'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title', function( $html, $name, $vars ) { // 関連記事のとき if ( 'snow-monkey/related-posts' === $vars['_context'] ) { // テキスト部分を抽出 $text = trim( strip_tags( $html ) ); // タイトル(タグを含む)のテキスト部分を、トリミングしたテキストに置換 return str_replace( $text, mb_strimwidth( $text, 0, 10, '…' ), // 抽出したテキストをトリミング $html ); } return $html; }, 10, 3 );
「2行目以降」という指定はできないので、切り取る長さを調整してみてください(
mb_strimwidth
の10
の部分)。あと、僕はサイトを何度も拝見しているのでだいたいなにがどこにあるのかわかりますが、初見の人は「関連記事はどこにあるの?」となってしまう場合があると思いますので、【当該サイトのURL】にはトップページの URL ではなくそのトピックの内容(今回であれば関連記事)が確認できる URL を書いていただければと思います!
♥ 0いいねをした人: 居ません2020年11月25日 9:30 AM #61554返信が含まれるトピック: カテゴリーページで投稿者名を削除したい
これでどうでしょう?
add_filter( 'snow_monkey_template_part_render_template-parts/loop/entry-summary/meta/meta', function( $html, $name, $vars ) { // カテゴリーアーカイブ表示時、かつ記事一覧部分のとき if ( is_category() && 'archive' === $vars['_context'] ) { return preg_replace( '|<li class="c-meta__item c-meta__item--author">.*?</li>|ms', '', $html ); } return $html; }, 10, 3 );
上記で HTML ごと消えると思いますが、互換性を考えると CSS のほうが安定度は高いかなぁとは思います。
♥ 1いいねをした人: 居ません2020年8月24日 2:26 PM #56081返信が含まれるトピック: 特定のカテゴリーアーカイブページで全文表示したい
了解です! こんな感じでどうでしょうか?
add_filter( 'snow_monkey_template_part_render', function( $html, $slug, $name ) { if ( ! is_category( '未分類' ) ) { return $html; } if ( 'template-parts/loop/entry-summary/content/content' === $slug && 'rss' !== $name ) { ob_start(); ?> <div class="任意の class"> <div class="c-entry-summary__content p-entry-content"> <?php the_content(); ?> </div> </div> <?php $html = ob_get_clean(); $html = preg_replace( '|<a[\s\t\r\n]|ms', '<span ', $html ); $html = str_replace( '</a>', '</span>', $html ); } return $html; }, 10, 3 );
上記は「未分類」カテゴリーにだけ全文表示を適用するコードになります。「未分類」となっている部分を対象にしたいカテゴリー名に変更してください。また、「任意の class」としているところも適当な class 名に変更してください。
♥ 1いいねをした人: 居ません2020年7月21日 3:45 PM #54399返信が含まれるトピック: ブログ一覧(アーカイブ)を「テキスト」にしたときもカテゴリーを表示させたい
これでどうでしょう? 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いいねをした人: 居ません2020年7月21日 1:34 PM #54388返信が含まれるトピック: ブログ一覧(アーカイブ)を「テキスト」にしたときもカテゴリーを表示させたい
ありがとうございます!!
全部をまるっと記事へのリンクではなく、タイトルは記事へのリンク、カテゴリーはカテゴリー一覧へのリンクが望ましいかなと感じたので、自分で以下のようにしたのですが、カテゴリーへのリンクの記載がわからず…。
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いいねをした人: 居ません2020年7月21日 11:45 AM #54376返信が含まれるトピック: ブログ一覧(アーカイブ)を「テキスト」にしたときもカテゴリーを表示させたい
下記のコードを 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いいねをした人: 居ません2020年7月20日 10:35 AM #54333返信が含まれるトピック: 投稿一覧のデザインを大きく変更したい
My Snow Monkey に下記を追加してください。「投稿」かつ「リッチメディア」のときに書き換えが実行されます。
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'] ) && 'rich-media' === $vars['_entries_layout'] ) { ob_start(); ?> <section class="c-entry-summary c-entry-summary--post c-entry-summary--my-rich-media"> <?php \Framework\Helper::get_template_part( 'template-parts/loop/entry-summary/figure/figure' ); ?> <div class="c-entry-summary__body"> <header class="c-entry-summary__header"> <?php \Framework\Helper::get_template_part( 'template-parts/loop/entry-summary/title/title' ); ?> </header> </div> <div class="c-entry-summary--my-rich-media__meta"> <div class="c-entry-summary--my-rich-media__author"> author: <?php the_author(); ?> </div> <span class="c-entry-summary--my-rich-media__published"> <?php the_time( get_option( 'date_format' ) ); ?> </span> <span class="c-entry-summary--my-rich-media__categories"> <?php $categories = get_the_terms( get_the_ID(), 'category' ); if ( $categories ) { foreach ( $categories as $category ) { ?> <a href="<?php echo esc_url( get_term_link( $category ) ); ?>">#<?php echo esc_html( $category->name ); ?></a> <?php } } ?> </span> <span class="c-entry-summary--my-rich-media__tags"> <?php $tags = get_the_terms( get_the_ID(), 'post_tag' ); if ( $tags ) { foreach ( $tags as $tag ) { ?> <a href="<?php echo esc_url( get_term_link( $tags ) ); ?>">#<?php echo esc_html( $tags->name ); ?></a> <?php } } ?> </span> </div> </section> <?php return ob_get_clean(); } } return $html; }, 10, 4 );
ごっそり書き換えているので、アップデートの際は影響がでることがあるかもしれません。アップデートの際はご注意ください。
CSS も書いてみました。適当に調整してください。
.c-entry-summary--my-rich-media__meta { font-size: 12px; } .c-entry-summary--my-rich-media__author { color: #999; } .c-entry-summary--my-rich-media__categories { color: red; } .c-entry-summary--my-rich-media__categories a { color: inherit; text-decoration: none; } .c-entry-summary--my-rich-media__tags { color: orange; } .c-entry-summary--my-rich-media__tags a { color: inherit; text-decoration: none; }
2020年6月23日 8:40 AM #53124返信が含まれるトピック: 記事一覧の表示を全文表示に変更したい
一応下記のコードで全文表示にできることはできました。My Snow Monkey プラグインに貼り付けてみてください。
add_filter( 'snow_monkey_template_part_render', function( $html, $slug, $name ) { if ( 'template-parts/loop/entry-summary' === $slug && 'rss' !== $name ) { // リンクの開始タグを削除 $html = preg_replace( '|<a href="[^"]+?">\s*?(<section class="c-entry-summary)|ms', '$1', $html ); // リンクの終了タグを削除 $html = preg_replace( '|(</section>)\s*</a>$|ms', '$1', $html ); } elseif ( 'template-parts/loop/entry-summary/content/content' === $slug && 'rss' !== $name ) { ob_start(); ?> <div class="c-entry-summary__content p-entry-content"> <?php the_content(); ?> </div> <?php $html = ob_get_clean(); } return $html; }, 10, 3 );
ただ、全文表示を想定したつくりにはなっていないので、例えばブロックを全幅や幅広にしたりしているとずれたりすると思います。ごくごくシンプルな文章と画像を並べただけの記事なら問題は少ないと思いますが、それ以上のことをやっていると微妙かもしれません…。
♥ 0いいねをした人: 居ません2020年6月10日 12:07 PM #52427返信が含まれるトピック: ループ内のテンプレートをフックで上書きすると増えてしまう
なるほど、調査ありがとうございます!!
そちらの構文の方がわかりやすいですね。
テンプレート変更・変数変更と似てますし。以下のように修正して重複出力を解決できました!
function custom_template__loop_entry_summary_meta_meta__remove_author() { ?> <div class="c-entry-summary__meta"> <ul class="c-meta"> <li class="c-meta__item c-meta__item--published"> <?php the_time( get_option( 'date_format' ) ); ?> </li> </ul> </div> <?php } add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { if ( 'template-parts/loop/entry-summary/meta/meta' === $slug ) { return custom_template__loop_entry_summary_meta_meta__remove_author(); } return $html; }, 10, 2 );
この方法で対応可能なので、アップデートではなく記事修正で良いかと思いました!
♥ 0いいねをした人: 居ません2020年6月10日 10:13 AM #52411返信が含まれるトピック: ループ内のテンプレートをフックで上書きすると増えてしまう
snow_monkey_get_template_part_xxxx
アクションフックはinc2734_view_controller_get_template_part_xxxx
アクションフックをラップしたものなのですが、アクションフックのラップはフィルターフックのラップと違ってちょっと工夫が必要なようで、それが不足していたために何度もコールバックが追加されてしまうという感じになっていました。次のアップデートでコールバックは1つまでしか追加されないようにしようと思いますが、別なフックで対応したほうがいろいろわかりやすいかもしれません…。add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { if ( 'template-parts/loop/entry-summary/meta/meta' === $slug ) { return 'hoge'; } return $html; }, 10, 2 );
♥ 0いいねをした人: 居ません2020年6月2日 3:23 PM #52068返信が含まれるトピック: 任意のタクソノミーの投稿で、カスタムフィールドを表示させたい
情報ありがとうございます! こんな感じでどうでしょう?
add_filter( 'snow_monkey_template_part_render', function( $html, $slug, $name, $vars ) { if ( 'news' !== get_post_type() ) { return $html; } if ( 'template-parts/loop/entry-summary/title/title' === $slug ) { $title_tag = $vars['_title_tag']; return sprintf( '<%1$s class="c-entry-summary__title">%2$s</%1$s>', esc_html( $title_tag ), esc_html( get_post_meta( get_the_ID(), 'title', true ) ) ); } elseif ( 'template-parts/loop/entry-summary/content/content' === $slug ) { return sprintf( '<div class="c-entry-summary__content">%1$s</div>', esc_html( get_post_meta( get_the_ID(), 'content', true ) ) ); } return $html; }, 10, 4 );
'news' !== get_post_type()
の部分がカスタム投稿タイプかどうかの判定になります。news
の部分をご自身のカスタム投稿タイプ名にあわせて変えてください。get_post_meta( get_the_ID(), 'title', true )
がタイトル部分のカスタムフィールドの出力になります。title
の部分をご自身のカスタムフィールド名にあわせて変えてください。get_post_meta( get_the_ID(), 'content', true )
がグレー文字部分のカスタムフィールドの出力になります。content
の部分をご自身のカスタムフィールド名にあわせて変えてください。♥ 2いいねをした人: 居ません -
投稿者検索結果