忍者ブログ
30 April

welcart パンくずリストの「商品・商品ジャンル」を消したい

公式フォーラム
パンくずリストのカスタマイズ方法について
http://www.welcart.com/community/forums/topic/%E3%83%91%E3%83%B3%E3%81%8F%E3%81%9A%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E6%96%B9%E6%B3%95%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-1


//パンくずリストから「商品」「商品ジャンル」を消す
function my_filter_breadcrumbs($bcnObj) {
$trail = array();
if ( count($bcnObj->trail) > 0 ) {
for ( $i = 0; $i < count($bcnObj->trail); $i++ ) {
if ( '商品' != $bcnObj->trail[$i]->get_title() && '商品ジャンル' != $bcnObj->trail[$i]->get_title() ) {
$trail[] = $bcnObj->trail[$i];
}
}
}
$bcnObj->trail = $trail;
return $bcnObj;
}
add_action('bcn_after_fill', 'my_filter_breadcrumbs');


Breadcrumb NavXTというプラグイン専用の記述です。functions.phpに書く。
PR
29 April

ktai-styleのtitleが文字化けする

解決策

All in ONE SEO Pack の Title setting 「利用停止」にする



http://ja.forums.wordpress.org/topic/66?replies=10#post-648

現在から6年前の記事で、All in ONE SEO Pack との競合のせいだと書いてありました。
そこで原因解明されて、

/* ==================================================
 * Disable title-replace by All in One SEO Pack
 */
global $aiosp;
if (isset($aiosp) && is_object($aiosp)) {
	remove_filter('wp_head', array($aiosp, 'wp_head'));
}	remove_filter('template_redirect', array($aiosp, 'template_redirect'));
}

このようなコードを ktai_style/patches.php に書き込むことで解決されるとありました。
そして次期バージョンで対策するとも。

しかしながら今現在もtitleの文字化け症状がでています。
FTPを見に行くと、ディレクトリ構造も変わっていて、別の名前のphpファイルに
上記の対策コードが書き込まれていました。
でもAll in One SEO Pack だってバージョンアップしてるし、
いつのまにかまたダメになったんでしょうね。
こういうとこがワードプレスの面倒くさいところで、
他人のサイトを作ったときにのちのち使えなくなるとか考えるだけでうんざり
24 April

スマホでサイトをみたときに、テキストの右側に余白ができる現象

トラブル

テキストの右側のみ余白があく。指定していない幅で折り返されている。
動画や画像などは正常な幅で表示される

原因

Androidブラウザの「ページの自動調整」が原因

解決策

1、ブラウザのメニューアイコン → 設定 → 高度な設定 → ページの自動調整のチェックを外す

 見てる人にゆだねる解決法では作ってる側としては文句を言われるだろう・・・

2、該当テキスト箇所にbackground-colorを指定する
 
 背景が無地であればいけますね(*transrarent では無効になる)

3、該当テキスト箇所にbackground-imageを指定する

 background-image:url(xxxx.gif); 存在しないダミー画像を表記するだけでいいらしい
 透過.gifなど作るとよい

*display:tableを指定してると何をやってもだめらしい

http://gootre.blog.so-net.ne.jp/android-browser-text-cr
http://jumble-note.blogspot.jp/2012/10/androidcss.html
http://webutubutu.com/webdesign/1555

通常のPCブラウザだけじゃなくて、スマホのブラウザも気にしなくちゃいけないとか
本当にめんどくせえ・・・
しかも原因が特有の勝手な設定とか・・・
19 April

welcart サブ画像のところに付けた見出しの表示非表示を設定する

通常ではサブ画像表示領域に何も見出しはありません。
でも「関連画像」とか「サブイメージ」とか見出しテキストで区切って書きたいです。
そんなとき普通に<h2>などで書くと、サブ画像がないときでも見出しが表示されてしまいます。
正攻法なのか面倒なことしてるのかわかりませんが、if文で出来ました。


<div class="itemsubimg">
<?php if($imageid = usces_get_itemSubImageNums()): ?>
<h2>サブイメージ画像</h2>
<?php foreach ( $imageid as $id ) : ?>
        <a href="<?php usces_the_itemImageURL($id); ?>" <?php echo apply_filters('usces_itemimg_anchor_rel', NULL); ?>><?php usces_the_itemImage($id, 135, 135, $post); ?>
        <p class="itemsubimg_caption"><?php usces_the_itemImageCaption($id); ?></p></a>
<?php endforeach; ?>

    <?php else: ?><!--もしサブ画像がなかったら-->
    <p>&nbsp;</p>
    <?php endif; ?>
    </div><!-- end of itemsubimg -->


オレンジ色の部分が付け足した場所です。
もしサブ画像があったなら以下を出力、なかったら半角スペースを入力、となっています。
そこに何もなくするとか、要素を非表示にするとかもうわかんなかったので、
空divのような邪道?でやってしまいました。
19 April

welcart  サブ画像クリックすると、メイン画像が切り替わる(リンクも)

jQueryとか自分で作成する能力は全然ないんですけど、
すごく簡単なやつを作ってやってみました。
個別ごとにはどうにかできるけど、繋げたりするとわからなくなる・・・。


<script>
//サブ画像のリンクをクリックしたときに、サブ画像のhref属性を取得し、メイン画像のhrefとして置き換える
jQuery(function(){
    jQuery(".itemsubimg a").click(function(){
        jQuery(".itemimg a").attr("href",jQuery(this).attr("href"));
        return false;
        });
    });
   
//サブ画像のリンクをクリックしたときに、サブ画像のsrcf属性を取得し、メイン画像のsrcとして置き換える
jQuery(function(){
    jQuery(".itemsubimg a").click(function(){
        jQuery(".itemimg img").attr("src",jQuery(this).attr("href"));
        return false;  
        });
    });   
 
//サブ画像のリンクをクリックしたときに、サブ画像のリンク内にあるテキスト要素を取得し、.cap_name の場所(メイン画像の下に<p></p>設置)にテキストとして書き込む
jQuery(function(){
    jQuery(".itemsubimg a").click(function(){
        jQuery(".cap_name").text(jQuery(this).text());
        return false;  
        });
    });
</script>

最後のやつはこの間、サブ画像をリンクループ表示させている<a></a>の中に
welcartのキャプション出力テンプレートタグを書きました。
だから<a> ~ </a>の中に含まれているテキストは、出力されたキャプション名なんです。
テンプレートタグで出力したテキストをどうやったら任意の場所にもっていけるのか、
色々クラス名などで指示して試してうまくいきませんでした。
正解は単純に (this) この .text() テキストを取得 なんですね。
頭が回らない・・・。