[解決済み] ベストセラーウィジェットに画像を表示させたい。
フォーラム › テンプレート(テーマ) › [解決済み] ベストセラーウィジェットに画像を表示させたい。
- このトピックには14件の返信、5人の参加者があり、最後にakemiにより13年、 11ヶ月前に更新されました。 
- 
		投稿者投稿
- 
		
			
				
2010年6月17日 3:35 PM #49819gasa 参加者すみません。 welcartデフォルトテーマの左サイドバーのベストセラーウィジェットに商品画像を表示させたいのですが、 どうすればいいでしょうか? おすすめウィジェットのように、 php usces_the_itemImage を挿入すればいいと思いusces_bestseller.phpの php usces_list_bestseller($rows_num)の直前に挿入してやってみました が、一覧のトップの商品画像が出てしまいます。。。 template_func.phpの中にそれらしいモノがないかと探してみても無いようです よろしくお願いいたします。 2010年6月18日 12:25 AM #59814 nanbuキーマスター nanbuキーマスターこんにちは。 usc-e-shop/functions/template_func.php のusces_list_bestseller() という関数をご覧ください。この中にusces_widget_bestseller_auto_text というフックが有ります。このフックに引っ掛けてフィルターをかけます。そうすることで本体に改変を加えずともご要望の表示をさせる事ができます。 フックやフィルターについてはこちらをご覧ください。 不用意に本体をハックしてはいけません。 まずはこの開発フォーラムで、どのフックを使えばいいのか、また存在しない場合は本体に新たなフックの設置が可能かどうかをお尋ねください。 2010年6月18日 1:06 AM #59815kami 参加者kamiです。 フックについて書いてあったので失礼します。 『 usces_widget_bestseller_auto_text 』 上記のフックの中身はどこに記述すれば良いのでしょうか? 外部ファイルにフックの一覧が定義されているということでしょうか? フックについてよくわからず、申し訳ありませんが、どうぞよろしくお願いましす。 2010年6月18日 4:33 AM #59816 nanbuキーマスター nanbuキーマスターフックはWelcart の機能ではなくWordPress のAPI です。その詳細は僕がここで説明するまでも無く「WordPress Codex」に全て記述されています。まずはそちらで知識を得て技術を習得してください。 ヒントを申し上げますと フックに引っ掛けて自分で作った関数を実行することになります。その一連のコードはテーマフォルダの中のfunctions.php に記述するのが手っ取り早いと思います。大掛かりな場合は拡張プラグインを自分で作ることになります。Welcart 自体も全てフックに引っ掛けてWordPress を拡張しているのです。 趣味の範囲ならともかく、WordPress でカスタマイズを仕事にしたいと考えている方は「プラグイン API」をマスターするといいですよ。 2010年6月20日 12:39 PM #59817gasa 参加者お返事遅くなり、すみません。 難しそうですが、PHPの勉強のテーマが出来たので頑張ります! 一応解決済みとします。 できたらご報告いたします。 素早いご回答ありがとうございました。 2010年6月23日 4:05 PM #59818gasa 参加者すみません。追加で質問なのですが、 usces_widget_bestseller_auto_text というフィルターフックの適用タイミングはどこで定義されているのでしょうか? マルチファイル検索しても、usc-e-shop/functions/template_func.php の中にしか見つからず、wordpress本体も検索しても見つからずで。。。 何度もすみません。 2010年6月23日 8:11 PM #59819 nanbuキーマスター nanbuキーマスターこんにちは。 usc-e-shop/functions/template_func.php の中で正解です。 そのusces_list_bestseller() と言う関数がベストセラーのリストを生成しています。 フィルターが代入している $disp_text がアンカーの中に設置されていますよね。その値を関数でリターンしてやればいいのです。 フィルターは2つの引数を送っています。大切なのは2つ目の$ids[$i](post_id)で、独自の関数ではこれを取得して商品の関連データを探し出すことになります。 2010年6月24日 2:17 PM #59820gasa 参加者nanbu様 できたようです。。。 $disp_img = apply_filters('usces_widget_bestseller_auto_text', usces_the_itemImage($number = 0, $width = 150, $height = 150, $post ), $ids[$i]);
 $htm .= "<li><img src='" . get_permalink($ids[$i]) . "'>" . $disp_img . "</a></li>?n";上記をbestseller関数の $disp_text = apply_filters('usces_widget_bestseller_auto_text', wp_specialchars($post->post_title), $ids[$i]);の後に挿入したら表示できました! 前回の質問の仕方が悪かったのだと思いもう一度聞きますが、 usces_widget_bestseller_auto_textというフックが定義されているファイルが分かりません。 例えば、wordpressデフォルトのフィルターフックの comment_excerptならば、以下のような説明があります。 『comment_excerpt関数を使ってデータベースから取得したコメント抜粋に適用される。』 なので、usces_widget_bestseller_auto_textの正体がわからず悶々としています。 外部ファイルに「こういう動きをする」みたいなプログラムも見つからないので辿っていけず。。 多分どこかで独自フィルターフックを登録しているはず!と考えて探していたのですが、、、 すみません、かなり的を得てない質問かもしれません。 2010年6月25日 2:02 AM #59821 nanbuキーマスター nanbuキーマスターこんにちは。 template_func.php をハックしてしまってはフックの意味が有りません。 まずはtemplate_func.php を元に戻してください。 フックがどれか判らないという事ですが、apply_filters がフックなのです。 従って、apply_filters(‘usces_widget_bestseller_auto_text’,・・・・) がusces_widget_bestseller_auto_text というフィルターフックなのです。 次のコードをテーマ内のfunctions.php に記述してください。 add_filter( 'usces_widget_bestseller_auto_text', 'my_bestseller', 10, 3);
 function my_bestseller(){
 $args = func_get_args();
 $post_id = $args[1];
 $post = get_post($post_id);
 $str = usces_the_itemImage(0, 60, 60, $post, 'return' ) . wp_specialchars($post->post_title);
 return $str;
 }2010年6月26日 10:56 AM #59822gasa 参加者nanbu様 できました! こういう仕組みになっているんですね。。。 何度もすみませんでした。 ありがとうございました! 2010年12月13日 4:22 PM #59823saorin 参加者nanbu様 上記のやりとりを拝見させていただき、 add_filter( ‘usces_widget_bestseller_auto_text’, ‘my_bestseller’, 10, 3); function my_bestseller(){ $args = func_get_args(); $post_id = $args[1]; $post = get_post($post_id); $str = usces_the_itemImage(0, 60, 60, $post, ‘return’ ) . wp_specialchars($post->post_title); return $str; } 上記のコードをテーマ内のfunctions.php に記述してみたのですが、うまく画像が表示されません。。。 やりかたが間違っているのでしょうか? 他に変更すべき箇所があるのでしょうか? ウィジットで、ベストセラーを選び、右のサイドバーに配置しています。 ちなみに、手書きリストを選択しています。 どうぞよろしくお願いいたします。 2010年12月14日 1:57 AM #59824 nanbuキーマスター nanbuキーマスターこんにちはsaorinさん。 手書きリストの方にはフックがありませんでしたので次期バージョンで追加したいと思います。フィルター名は’usces_widget_bestseller_manual_text’となる予定です。 2011年11月8日 6:12 PM #59825akemi 参加者お世話になります。 2011/11/6に更新された、Welcart 1.0.7バージョンには追加されていないですね?次期バージョンになりますでしょうか? 楽しみにしてます。宜しくお願いします。 2011年11月9日 9:29 AM #59826 nanbuキーマスター nanbuキーマスターこんにちは、akemiさん。 ‘usces_widget_bestseller_manual_text’フックは、usces_bestseller.php にございます。1.0.7 には既に入っております。 2011年11月10日 5:09 PM #59827akemi 参加者nanbuさん、こんにちは。 お陰様でできました!嬉しいです。 本当にありがとうございました! 
- 
		投稿者投稿
- このトピックに返信するにはログインが必要です。
 PAGE TOP
PAGE TOP