【EC-CUBE】ログインしているかどうかの判別

ヘッダー部分に、「ようこそ○○様」や「ようこそゲスト様」を表示するための、
ログイン判別の仕方

/data/class/pages/LC_Page.php
関数 function init に下記を追加。
$objCustomer = new SC_Customer();
if ( $objCustomer->isLoginSuccess() ) {
$this->tpl_login = true;
$this->tpl_name1 = $objCustomer->getValue( ‘name01’ );
$this->tpl_name2 = $objCustomer->getValue( ‘name02’ );
}

ヘッダーの、「ようこそ」表記で、
<!–{if $tpl_login}–>

ようこそ <span class=”user_name”><!–{$tpl_name1|h}–> <!–{$tpl_name2|h}–> 様</span>
<!–{else}–>
<a href=”/mypage/login.php”>ようこそゲストさん(ログイン)</a>
<!–{/if}–>

 

EC-CUBEで任意のjsファイルを追加する

EC-CUBEで、任意のJavaScriptファイルを読み込む。

・ファイルのアップロード
doc_root/user_date/packages/テンプレート名/js/

・ファイルの読み込み
data/Smarty/templates/テンプレート名/site_frame.tpl

site_frame.tplに、
<script type="text/javascript" src="<!--{$TPL_URLPATH}-->js/xxxxxx.js"></script>

を追記する

wordpressで作ったサイトの高速化

WPで構築したサイトはときにとても重たくなります。
そんな時に、試して改善がみられたプラグインを3つメモ。

プラグインは3つとも、プラグイン新規追加内にあります。
使い方&解説をしてくださっているサイトをリンクさせていただきました。

Quick Cache
http://techacademy.jp/magazine/3393

WP Super Cache
http://keigoizumiya.com/archives/420

Head Cleaner
http://bazubu.com/head-cleaner-23851.html

※Head Cleanerはjsが動かなくなったものがあったので停止中

【PHP】文字列に空白を足したい

文字列の空白を除去する処理は多いけど、空白を足すときがなかなかうまくいかない。

いろいろ試した結果、なんとか以下の方法でうまくいった。

タイトルを取得して変数に入れる

投稿によって違うタイトル文字の長さを一定にしたい
このまま文字数をカウントして処理しようとすると、どうにも上手くいかないので、文字列をSJISからUTF-8に変換して数えることに。

この $aaaが20以下なら、タイトルに改行をたして、さらに半角の空白を足した

これで望む結果が得られました

 

get_post のorderby rand、ランダム順がきかない時の対処

get_post random and order by not working

上記にて解決

orderby が効かない時は、プラグインのpost orderとコンフリクトしている可能性があり。

この、フィルターをはずすを記述したら、見事orderby=rand が効くようになりました

カスタムフィールドの値を変数で取得する

$meta_values= get_post_meta($post_id, $key, $single);

$post_id
データを取得する投稿のIDを指定。表示中の投稿を指定するなら $post->ID

$key
表示したいカスタムフィールドに入れた名前

$single
trueかfalseを指定。
falseで配列でデータを出力する。trueで指定されたフィールドの”値”の1つを文字列で出力。

よく使う例でいえば、
$hoge= get_post_meta($post->ID, ‘hoge’, true);
という使い方。

lightbox系プラグインが動かない

プラグインを追加していくと、lightbox系のプラグインが動かなくなることがよくあります。

以前は、Lightbox Plus ColorBox   を使っていて、メイン画像のスライダーとも競合せず使い勝手がよかったのですが、新しいサイトを構築する際にLightbox Plus ColorBox がどうしても動かない。

環境は、Wordpress3.9.1 + Lightbox Plus ColorBox 2.7
他にbxsliderを入れていたのを外し、あらゆる機能も外してみたがどうにも動かない。

次にFancy Boxを入れてみたがこれも動かず。
最後に、FancyBox for WordPress で動いた。
キーになったのは、このプラグインに搭載されている「プラグイン内のjQueryロードをOFFにする」という機能のよう。
こちらの記事を参考に設定したら見事動きました。

Fancybox for WordPress の設定変更