フォーラムへの返信
-
投稿者投稿
-
サーバーのエラーログに詳細なエラーがでていると思うので、それを見せてもらうことは可能でしょうか?
♥ 0Who liked: No userんーこうですかね?
<a class="administrative-scrivener-tag--<?php echo esc_attr( $post_tag_term->slug ); ?>" href="<?php echo esc_url( get_term_link( $post_tag_term ) ); ?>"><?php echo esc_html( $post_tag_term->name ); ?></a>
id
は個別になるようにしていたので、その値をclass
に移しました。細かい要件は僕にはわからないので、ご自身で調整してみてください!①各タクソノミーにclassの付与方法
この辺は普通の HTML と同じなので、自分がつけたいところに
class
を追加すれば良いです。例えば。<a href="<?php echo esc_url( get_term_link( $post_tag_term ) ); ?>"><?php echo esc_html( $post_tag_term->name ); ?></a>
↓
<a class="administrative-scrivener-tag" href="<?php echo esc_url( get_term_link( $post_tag_term ) ); ?>"><?php echo esc_html( $post_tag_term->name ); ?></a>
②IDがあるのであれば知りたいです。
ID というのはどういう意味ですかね…?単純に
class
と一緒に付与するid
属性ということでしょうか?もしそうだとするなら、これも自分で好きな値で
id
を追加すれば良いです。スラッグは他と被らないはずなので、slug
を使うのが良いのではないでしょうか(もしくはterm_id
)。<a id="administrative-scrivener-tag--<?php echo esc_attr( $post_tag_term->slug ); ?>" class="administrative-scrivener-tag" href="<?php echo esc_url( get_term_link( $post_tag_term ) ); ?>"><?php echo esc_html( $post_tag_term->name ); ?></a>
あ、すみません、今気づいたのですが、最近の投稿ブロックの各項目は
a
要素で囲ってあるから、タグにリンクを貼ることはできないですね。HTML の仕様的にa
は入れ子にできないので。なのでリンクさせるのはやめてこういう形にしたほうが良いかなと思います。<a href="<?php echo esc_url( get_term_link( $post_tag_term ) ); ?>"><?php echo esc_html( $post_tag_term->name ); ?></a>
↓
<span><?php echo esc_html( $post_tag_term->name ); ?></span>
リプライするときに整形されるから?なのかコードが崩れているので整形してみました。
あと、コードの途中にちゃんとタグの情報が取得できているか確認するために
var_dump(...);
を追加してみました。ちゃんと取得できているならタグの情報が画面上に表示されるはずです。表示されないなら紐づけができていないか、名前が間違っている可能性がありそうです。add_filter( 'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title', function ($html) { // カスタムフィールドで設定したフィールド名を代入 $acf_name_area = get_field('name_area'); $acf_region_area = get_field('region_area'); $acf_specialty_genre = get_field('specialty_genre'); // テンプレートのh3タグの後に <div class="property-info">を追加 $acf_property_info = '</h3><div class="property-info">' . '<div class="property-body">' . '<div class="property-content">' . '<dl class="name_area"><span>【代表者名】</span> <dt>' . esc_html($acf_name_area) . '<dt></dl>' . '<dl class="region_area"><span>【地域】</span> <dt>' . esc_html($acf_region_area) . '<dt></dl>' . '<dl class="specialty_genre"><span>【取扱業務】</span> <dt>' . esc_html($acf_specialty_genre) . '<dt></dl>' . '</div>' . '</div>' . '</div>'; // テンプレートパーツのh3タグの後ろにdivタグを追加する $html = str_replace( '</h3>', $acf_property_info, $html ); return $html; // テンプレートパーツのh3タグの後ろにdivタグを追加する $html = str_replace( '</h3>', $acf_property_info, $html ); // 記事に紐づいている post_tag の各タームのアーカイブページへのリンクを表示する $post_tag_terms = get_the_terms(get_the_ID(), 'administrative_scrivener_tag'); var_dump( $post_tag_terms ); // テスト用 ob_start(); if (is_array($post_tag_terms)) { foreach ($post_tag_terms as $post_tag_term) { ?> <a href="<?php echo esc_url( get_term_link( $post_tag_term ) ); ?>"><?php echo esc_html( $post_tag_term->name ); ?></a> <?php } } $administrative_scrivener_tags = ob_get_clean(); var_dump( esc_html( $administrative_scrivener_tags ) ); // テスト用 $html = $html . $administrative_scrivener_tags; return $html; } );
その記事に紐づく任意のタクソノミーのタームを取得する関数
get_the_terms()
を使う形になると思います。// テンプレートパーツのh3タグの後ろにdivタグを追加する $html = str_replace( '</h3>', $acf_property_info, $html ); // 記事に紐づいている post_tag の各タームのアーカイブページへのリンクを表示する ob_start(); $post_tag_terms = get_the_terms( get_the_ID(), 'post_tag' ); if ( is_array( $post_tag_terms ) ) { foreach ( $post_tag_terms as $post_tag_term ) { ?> <a href="<?php echo esc_url( get_term_link( $post_tag_term ) ); ?>"><?php echo esc_html( $post_tag_term->name ); ?></a> <?php } } $html = $html . ob_get_clean();
「News」と「お知らせ」2つのカテゴリーを割り当てているのではなく、「お知らせ」がスラッグということですかね?
基本的には割り当てているカテゴリーのうちの1つが表示されるようになっているので、何らかのカスタマイズが影響している可能性があるのではないかと思います。My Snow Monkey プラグインや子テーマの
functions.php
等に、独自のコードを追加している場合は、一度全部消してみたらどうなるか確認してみてください!♥ 0Who liked: No user変更を入れたバージョン(v10.0.0 Beta1)を共有します!
内部のデータの持ち方を変えないといけなかったので、いきなりアップデートして互換性的に問題があるとまずいので、一旦こちらで共有させてください。1つ目のラジオボタンの UI で必須にしていて2つ目では必須にしていないというときに、2つ目の設定で上書きされて必須チェックが何も通らなくなるので、
一応、完全に上書きされるとやっぱりわかりにくいので、UI と実際のバリデーションが(できる範囲で)一致するように調整してみました(同じ name を持つ中で post された順で判定するようにしています)。
確認お願いします!
これ確か入力以外の画面は name に紐づいてデータを管理しているのに、入力だけ違ってたので統一させた、という感じだったと思います。だから複雑さを減らしてわかりやすくしたりメンテナンスしやすくするという意味では正しい変更だと考えているのですが、まぁそういう配置にしたいという場合ってありますよね…うーん。
とりあえずなるべく今の実装を活かしたまま、同名の入力項目を設置できるようにできないか試してみたいと思います。
が、一点、バリデーションについては name に紐づくので、同名の入力項目を設置した場合、一番後の入力項目に設定したバリデーション設定で他の同名の入力項目のバリデーション設定は上書きされてしまう、という挙動にはなると思います(多分 6.2.0 段階でもそうだったはず)。
一応差分貼っときます。
-
投稿者投稿