こんにちは。
商品名の長さを制御して表示させようと、
下記のコードを入力してみましたが、
思ったように丸まってくれません。
<?php mb_strimwidth(usces_the_itemName(), 0, 20, "..."); ?>
商品名が丸ごと表示されてしまうのですが、
何か良い方法は無いでしょうか。
こんにちは。
2つ方法が有ります。
一つは、ウィジェットの引数、$width、$height 共に200 と設定し、スタイルシートで、横縦それぞれ100px、140px とする方法です。この方法は縦横が固定されるため比率の違う画像は変形してしまうことになります。
.sidebar .widget_welcart_featured .thumimg img,
.sidebar .widget_ucart_featured .thumimg img{
}
もう一つは、WordPress のメディアの設定を変更する方法です。
管理パネル「設定」→「メディア」で”トリミングする”のチェックを外すか、若しくはサムネイルのサイズを99×99とするかどちらかになります。
この項の変更はやった事がないのでわかりませんが、もしかしたら画像の登録しなおしが必要になるかも・・・です。
たびたびの質問お許しください。ウィジェットにて、お勧め商品を掲載させようと考えております。プラグイン内のusces_featured.php内のusces_the_itemImageで画像を読み込ませているかと思いますが、
こちらの引数を<?php usces_the_itemImage($number = 0, $width = 100, $height =140, $post ); ?>にしても、100px × 100pxの正方形で書き出されてしまいます。理想は100px × 140pxなのですが、可能でしょうか?何卒よろしくお願い申し上げます。
スタイルシートの編集で変更できます。
usc-e-shop/css/usces_cart.css 内の#itempage .skuform .skuquantity を修正します。Welcart 専用テーマで無い場合は適宜セレクターを変更してください。
変更が確認できましたら、修正したusces_cart.css をテーマフォルダの中にコピーして設置します。(重要です)
usces_the_itemQuant()
のテンプレートタグについて質問です。
このタグの数量を入力するフォーム部品、1行テキストのサイズ(size)がとても大きいので小さくしたいのです。(2桁ほどでいいのですが、現状18桁まで入ってしまいます。)
どのPHPファイルでこのフォームのサイズを指定することができますでしょうか?
はじめまして。
カテゴリーページにて、ループ内にテンプレートタグを記述し、カテゴリに属する商品の各内容を表示させようとしているのですが、こちらのページで書かれていた、SKU情報を取得準備タグループ内に<?php usces_have_skus(); ?>を挿入すると、下記のようなエラーコードが出てしまいます。
Variable passed to each() is not an array or object in **********/wp-content/plugins/usc-e-shop/functions/template_func.php on line 98
また、現在は上記のコードを外して記述しているのですが、一部の内容が正しく表示されません。
たとえば、usces_the_itemImage()は正常に表示されますが、
usces_the_itemQuant()、usces_the_itemPrice()は表示されず、usces_the_itemSkuButton()に関しては、ボタン自体は表示されるのですが、カートページに移行した際、金額、単価、在庫状態がそれぞれ、0, 0, Arrayと表示されてしまいます。
(原因は、usces_have_skus()を記述していないせいかとは思いますが・・・。)
こちらが正常に表示されるようにするにはどうすればよろしいでしょうか?
こんにちは。
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;
}
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の正体がわからず悶々としています。
外部ファイルに「こういう動きをする」みたいなプログラムも見つからないので辿っていけず。。
多分どこかで独自フィルターフックを登録しているはず!と考えて探していたのですが、、、
すみません、かなり的を得てない質問かもしれません。
すみません。
welcartデフォルトテーマの左サイドバーのベストセラーウィジェットに商品画像を表示させたいのですが、
どうすればいいでしょうか?
おすすめウィジェットのように、
php usces_the_itemImage
を挿入すればいいと思いusces_bestseller.phpの
php usces_list_bestseller($rows_num)の直前に挿入してやってみました
が、一覧のトップの商品画像が出てしまいます。。。
template_func.phpの中にそれらしいモノがないかと探してみても無いようです
よろしくお願いいたします。
nanbuさん、ありがとうございます。
そのまま、記述したところ
Fatal error: Using $this when not in object context in /home/rockhands/www/wp-content/themes/example/ec_list.php on line 40
と出てしまいます。
商品の一覧を表示しているページで
<table>
<tr>
<td rowspan=”4″ class=”photo”>“><?php usces_the_itemImage(0, 240, 160); ?></td>
<th>品名:</th>
<td class=”title”>“><?php usces_the_itemName(); ?></td>
</tr>
<th>価格:</th>
<td><?php usces_have_skus(); ?><!? SKU情報取得準備タグ ?><span class=”price”><?php usces_the_itemPrice(); ?>円</span></td>
</tr>
<tr>
<th>数量:</th>
<td><?php usces_the_itemQuant(); ?> <?php usces_the_itemSkuButton(‘カートへ入れる’); ?></td>
</tr>
</table>
「品名」「価格」「数量」「カートに入れる」というようにtableで組んであるのですが、この「数量」の前に<tr>を作ってオプションを入れて、選択させたいのですが、どうすればよろしいでしょうか?
シングルページで、個々にやるべきでしょうか?
ループ中で以下のように記述してオプションを表示できます。
single_item.php より抜粋しています。
<?php
$html = '';
if (usces_is_options()) {
$html .= "<table class='item_option'><caption>".__('Please appoint an option.', 'usces')."</caption>n";
while (usces_have_options()) {
$html .= "<tr><th>" . $this->itemopt['key'] . '</th><td>' . usces_the_itemOption(usces_getItemOptName(),'','return') . "</td></tr>n";
}
$html .= "</table>n";
}
echo $html;
?>
ありがとうございます。良くわかりました。
まず、テンプレートファイルは category-information.php となります。カテゴリーinformation のIDが13ならば category-13.php でも構いません。
現在 ?cat=13 が表示されているのは category.php でしょうかそれとも archive.php でしょうか。いずれの場合もそのテンプレートをコピーして category-information.php を作成し編集していくことになります。
商品サムネイルを出す方法は2つ有ります。
1. Welcart のテンプレートタグを使う方法
<?php $item_post = get_post( 該当商品のpost_ID ); ?>
<?php usces_the_itemImage(0, 200, 250, $item_post); ?>
usces_the_itemImage() は商品に登録された画像を表示します。第1引数の0はメイン画像を現しており1以降はサブ画像となります。
2. 投稿サムネイルを使う方法
投稿サムネイルとは、その記事に対して一つ代表の画像を登録することでテンプレートタグを使ってそのサムネイルを表示させるものです。
この方法の場合その記事に対してもう一度商品画像をアップすることになりますが、WordPress の機能を使って投稿にサムネイルを表示する事ができます。
詳しくは「Post Thumbnails」をご覧ください。関連テンプレートタグは「テンプレートタグ」をご覧ください。
usces_the_itemImageURL(0, ‘return’)といテンプレートタグがあります。これは画像のURLを表示するものです。第1引数は商品画像のIDで0はメイン画像、そのあと1,2,3・・・とサブ画像が続きます。
このような形式のテンプレートタグを作って各画像(メディア)のキャプションや説明を表示させることは可能です。
要望リストに追加しておきます。
こんにちは。
商品詳細ページのメイン画像の表示はこのテンプレートタグを使用しています。
usces_the_itemImage($number, $width, $height)
使い方は「Welcart テンプレートタグ一覧」をご覧ください。
商品詳細ページのテンプレートファイルは、
usc-e-shop/templates/single_item.php
となっております。
このファイルはWelcart のアップグレードの際上書きされます。
上書きされないように退避させる方法は「カートページ、メンバーページ等のカスタマイズについて」をご覧ください。
SKU の情報にはSKUコードとSKU表示名が有りますが表示名は設定されていますでしょうか。
もし表示名ではなくコードを表示したいのであれば、
usces_the_itemSkuDisp()
を usces_the_itemSku()
に書き換えてください。
<?php _e(‘$’, ‘usces’); ?>
は全角「¥」に置き換えてOKです。
若しくは、<?php usces_the_itemPrice(); ?>
の後ろに「円」と書くのもいいですね。