-
投稿者投稿
-
2021年9月14日 3:36 PM #87118
【お使いの Snow Monkey のバージョン】15.7.0
【お使いの Snow Monkey Blocks のバージョン】12.3.1
【お使いの Snow Monkey Editor のバージョン】6.0.1
【お使いのブラウザ】Firefox 92.0
【当該サイトのURL】http://gsr-jp.com/seminer-event/### 実現したいこと
投稿日に曜日を追加したい。
### 発生している問題
### 試したこと
My Snow Monkeyに以下のコードを追加しましたが、エラーになりました。
add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { if ( 'template-parts/loop/entry-summary/meta/meta' === $slug ) { return preg_replace( '<time datetime="<?php the_time( 'c' ); ?>"><!--?php the_time( get_option( 'date_format' ) ); ?--></time>', '<time datetime="<?php the_time( 'c(D)' ); ?>"><!--?php the_time( get_option( 'date_format' ) ); ?--></time>', $html ); } return $html; }, 10, 2 );
♥ 0いいねをした人: 居ません2021年9月14日 3:37 PM #871192021年9月14日 4:14 PM #871252021年9月14日 4:29 PM #87129キタジマ様
エラーは以下となります。
♥ 0いいねをした人: 居ません2021年9月14日 4:33 PM #87131以下を参考にしました。
add_filter( 'snow_monkey_template_part_render', function( $html, $slug ) { if ( 'template-parts/loop/entry-summary/meta/meta' === $slug ) { return preg_replace( '| <ul> <li class="c-meta__item c-meta__item--published">.*?</li> </ul> |ms', ' <ul> <li class="c-meta__item c-meta__item--modified">' . get_the_modified_time( get_option( 'date_format' ) ) . '</li> </ul> ', $html ); } return $html; }, 10, 2 );
♥ 0いいねをした人: 居ません2021年9月15日 9:32 AM #871962021年9月15日 9:35 AM #87197また、ここは
add_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_modified', 20 );
というコードで日付を表示する処理を追加しているので、
snow_monkey_template_part_render
フィルターフックでの書き換えが難しいのであればremove_action( 'snow_monkey_entry_meta_items', 'snow_monkey_entry_meta_items_modified', 20 );
でデフォルトの日付表示処理を外して、改めてオリジナルの日付表示処理を追加するほうがわかりやすいかもしれませんね。
—-
追記:すみません、↑は誤りです。↑は詳細ページのメタ情報をについてでした。今回は一覧部分の日付なので違いますね。
一覧部分の日付(というかメタ情報)は、
template-parts/loop/entry-summary/meta/meta.php
というファイルで表示されています。この部分は子テーマにtemplate-parts/loop/entry-summary/meta/meta-{投稿タイプ名}.php
というファイルがあるとそれが優先されて使われるようになっているので、子テーマにそのファイルをつくって独自に日付の表示処理を書いてしまったほうがわかりやすいかもしれませんね。2021年9月15日 10:27 AM #87209キタジマ様
- https://snow-monkey.2inc.org/forums/topic/%e3%82%a2%e3%83%bc%e3%82%ab%e3%82%a4%e3%83%96%e3%82%84%e3%82%b5%e3%82%a4%e3%83%89%e3%83%90%e3%83%bc%e3%81%aa%e3%81%a9%e3%81%ae%e6%97%a5%e4%bb%98%e3%81%ab%e6%9b%9c%e6%97%a5%e3%82%92%e8%bf%bd%e5%8a%a0/#post-87196
以下にしてみましたが、日付が表示されなくなりました。
'<time datetime="' . get_the_time( 'c' ) . '">' . get_the_time( get_option( 'date_format' ) ) . '</time>', '<time datetime="' . get_the_time( 'c(D)' ) . '">' . get_the_time( get_option( 'date_format' ) ) . '</time>',
♥ 0いいねをした人: 居ません2021年9月15日 10:40 AM #87211んー
preg_replace
使ってるからですかね。ここはstr_replace
が正しいと思います(単純な文字列置換なので)。あと気になるのは
<time datetime=〜
という文字列で置換をおこなっていることです。一覧の日付部分はtime
タグは使っていなかったのではないかと思うのですが、なにか独自にカスタマイズされてたりしますかね? 特に無いのであれば、置換する文字列を書き換えるか、前述したように子テーマでテンプレートを追加するのが良いと思います。return preg_replace( '|(<li class="c-meta__item c-meta__item--published">)(.*?)(</li>)|ms', '$1' . get_the_time( 'Y年n月j日(D)' ) . '$3', $html );
それか、この部分は
get_option( 'date_format' )
を使っているので、ダッシュボード → 一般設定 → 日付形式 で指定したフォーマットが使用されます。なので日付形式のところで (D) を追加しちゃうのが一番簡単かもしれません。コードの追加自体がいらなくなるので。ただしここ以外の部分でもget_option( 'date_format' )
を使っている部分に曜日がでるようになっちゃうのでご注意ください。2021年9月15日 11:18 AM #87222 -
投稿者投稿
- トピック「アーカイブやサイドバーなどの日付に曜日を追加したい」には新しい返信をつけることはできません。