サイドナビ (widget:Welcart カテゴリー)に、カテゴリー画像を表示したい
フォーラム › テンプレート(テーマ) › サイドナビ (widget:Welcart カテゴリー)に、カテゴリー画像を表示したい
- このトピックには6件の返信、2人の参加者があり、最後にdswdsw123456により6年、 5ヶ月前に更新されました。
-
投稿者投稿
-
2018年6月19日 6:18 PM #85897dswdsw123456参加者
テーマの編集についてご質問いたします。
サイドナビ widget の設定で Welcartカテゴリー を、
使用してカテゴリ一覧を表示した際にカテゴリー名の横に、
各カテゴリー画像を表示することは可能でしょうか?編集するファイルや、編集方法をお教えください。
よろしくお願いいたします。2018年6月19日 7:08 PM #85899dswdsw123456参加者環境をペーストし忘れましたので、追記いたします。
——————————————-
WordPress のバージョン:4.9.6–ja
Welcart のバージョン:1.9.10ご利用のテーマ:Welcart VOLL 1.0.2
——————————————–2018年6月20日 10:31 AM #85901yasumaxキーマスターこんにちは。
該当箇所はWordPressの関数
wp_list_categories
を利用して表示しています。
このパラメータを変更するフィルターが用意されていますので、これを利用して独自のwalker
を指定することで可能かと思います。
apply_filters('usces_filter_welcart_category', $cquery, $cats->term_id)
パラメータのWalkerクラスについては公式を参考にしてください。
・WordPress Codex 日本語 テンプレートタグ/wp_list_categories2018年6月20日 7:04 PM #85908dswdsw123456参加者ご回答ありがとうございます。
お教えいただきました編集方法について
FQAリファレンス > フィルターフック、アクションフックの利用方法 を参考に
いろいろと試してみたのですが、表示することができませんでした。下記の内容についてお教えください。
● apply_filters(‘usces_filter_welcart_category’, $cquery, $cats->term_id)
が記入されているファイル名をお教えください。● 可能であれば、
add_filter(‘usces_filter_welcart_category’, … の記入例をお教えいただけますようお願いいたします。何卒よろしくお願いいたします。
2018年6月21日 3:59 PM #85917yasumaxキーマスターこんにちは。
● apply_filters(‘usces_filter_welcart_category’, $cquery, $cats->term_id)
が記入されているファイル名をお教えください。Welcartのプラグインフォルダ(usc-e-shop)内の
widgets/usces_category.php
になります。● 可能であれば、
add_filter(‘usces_filter_welcart_category’, … の記入例をお教えいただけますようお願いいたします。フックの使い方については下記トピックを参考にしてください。
・Welcart のカスタマイズとフック2018年6月23日 10:35 AM #85926dswdsw123456参加者フックについては理解できました。
wp_list_categoriesの
walkerについては、
よくわからない部分が多く、
少し時間をかけて調べたいと思います。ありがとうございました。
2018年6月24日 9:55 AM #85929dswdsw123456参加者下記の方法で解決いたしました。
walkerは、
wp-includes/class-walker-category.php の中を
ごっそりコピーして、1行だけ書き換えました。画像が無い場合の条件分岐など、まだ追加編集が必要ですが
これで、思い通りの表示となりました。記入の内容に問題点等がある場合は
ご指摘いただければ幸いです。お答えいただいた内容、大変助かりました。
ありがとうございました。add_filter('usces_filter_welcart_category', 'my_category_func', 10, 2); function my_category_func() { $args = func_get_args(); list($cquery, $term_id) = $args; $cquery = array( 'use_desc_for_title' => 1, 'child_of' => $term_id, 'title_li' => '', //'show_count' => 1, 'walker' => new Walker_Category_Linkin_Postcount() ); return $cquery; } class Walker_Category_Linkin_Postcount extends Walker_Category { public function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 ) { /** This filter is documented in wp-includes/category-template.php */ $cat_name = apply_filters( 'list_cats', esc_attr( $category->name ), $category ); // Don't generate an element if the category name is empty. if ( ! $cat_name ) { return; } $link = '<img />term_id, 'wcct-tag-thumbnail-url', true ) . '"><a href="' . esc_url( get_term_link( $category ) ) . '" '; if ( $args['use_desc_for_title'] && ! empty( $category->description ) ) { $link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"'; } $link .= '>'; $link .= $cat_name . '</a>'; if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) { $link .= ' '; if ( empty( $args['feed_image'] ) ) { $link .= '('; } $link .= '<a>term_id, $category->taxonomy, $args['feed_type'] ) ) . '"'; if ( empty( $args['feed'] ) ) { $alt = ' alt="' . sprintf(__( 'Feed for all posts filed under %s' ), $cat_name ) . '"'; } else { $alt = ' alt="' . $args['feed'] . '"'; $name = $args['feed']; $link .= empty( $args['title'] ) ? '' : $args['title']; } $link .= '>'; if ( empty( $args['feed_image'] ) ) { $link .= $name; } else { $link .= "<img />'; } $link .= '</a>'; if ( empty( $args['feed_image'] ) ) { $link .= ')'; } } if ( ! empty( $args['show_count'] ) ) { $link .= ' (' . number_format_i18n( $category->count ) . ')'; } if ( 'list' == $args['style'] ) { $output .= "\t<li"; $css_classes = array( 'cat-item', 'cat-item-' . $category->term_id, ); if ( ! empty( $args['current_category'] ) ) { // 'current_category' can be an array, so we use <code>get_terms()</code>. $_current_terms = get_terms( $category->taxonomy, array( 'include' => $args['current_category'], 'hide_empty' => false, ) ); foreach ( $_current_terms as $_current_term ) { if ( $category->term_id == $_current_term->term_id ) { $css_classes[] = 'current-cat'; } elseif ( $category->term_id == $_current_term->parent ) { $css_classes[] = 'current-cat-parent'; } while ( $_current_term->parent ) { if ( $category->term_id == $_current_term->parent ) { $css_classes[] = 'current-cat-ancestor'; break; } $_current_term = get_term( $_current_term->parent, $category->taxonomy ); } } } $css_classes = implode( ' ', apply_filters( 'category_css_class', $css_classes, $category, $depth, $args ) ); $output .= ' class="' . $css_classes . '"'; $output .= ">$link\n"; } elseif ( isset( $args['separator'] ) ) { $output .= "\t$link" . $args['separator'] . "\n"; } else { $output .= "\t$link<br />\n"; } } }
-
投稿者投稿
- このトピックに返信するにはログインが必要です。