Welcart対応ワードプレステーマをキャッシュプラグインに対応させる方法

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

本日はWelcart対応ECテーマをキャッシュプラグイン対応させる裏技です。ちなみに初心者さんであればECテーマにキャッシュプラグインは導入しない方が安全です。なぜならテーマの作り方によってはプラグイン側が用意している「部分的にキャッシュ化を避ける機能」が動作しないパターンがあるからです。

とはいえ、サイトが重くて表示が遅いと『顧客を逃してしまう』のも問題です。そんなときはキャッシュプラグインの傾向やWordPressの構造やテーマ作りに詳しいプロのエンジニアに依頼することをおすすめします。

本記事は一時的に公開しておき、業務メモとして残します。言うまでもありませんが作業前にはかならずFTPで全ファイルのダウンロードとDBのバックアップを残しておきましょう(作業前のお約束)。

Welcart対応のEC専用ワードプレステーマをキャッシュ対応させる

1. ウィジェットの「Welcartログイン」は使わない

サイドバーウィジェット内のログイン・非ログイン状態の条件分岐を変更:ウィジェット内にカスタムCSSボックスを追加

キャッシュ化プラグインによってはウィジェットボックスをキャッシュしない設定にもできるが、ウィジェットボックス内に記述されているPHPがWordPressに準じて書かれているとは限らない。そのためウィジェットボックスをキャッシュしない設定にしても結果的にキャッシュされてしまい顧客情報が表示される場合がある。

テーマ側が準備しているウィジェットによっては、上記チェックボックスを有効化して「キャッシュ対象外」にしてもキャッシュ対象に含まれてしまう場合があります。もし会員ユーザーがログインした状態でウィジェットボックス内に名前が表示される仕様の場合は念入りな検証が必要です。

もし検証した結果、テーマ側で準備されたウィジェットがキャッシュプラグイン非対応だった場合はワードプレス標準ウィジェットの「カスタムHTML」を使ってログインボックスを作ると安全です。ログイン時にユーザー名を表示させるロジックがあらかじめテーマ側に組み込まれてている場合は特に注意しましょう。

ちなみにコードを手動で作った例が以下です。

<div class="widget_welcart_login">
<div class="loginbox">
<a style="color:#ffffff;background-color:#ba00c4;" href="/usces-member/?page=login" class="p-wc-login-button p-button p-button--l">ログイン</a>
<p><a href="/usces-member/?page=lostmemberpassword">パスワードをお忘れですか?</a><br>
<a href="/usces-member/?page=newmember">新規ご入会はこちら</a></p>
</div>
</div>

ちなみに上記で解説したキャッシュ範囲に関する挙動「テーマ側の作り方」以外にもWelcart(ECカートプラグイン)側の仕様も影響しています。もちろんキャッシュプラグイン側でも特定テーマやプラグインの動きを考慮できる箇所でもあるので原因を断定するのは正直むずかしい部分でもあります。

2. header.phpの挙動

キャッシュ化にあたりヘッダーのログイン・非ログイン状態の条件分岐を変更:header.php

テーマによってはheader.phpでログイン・ログアウト状態を条件分岐で切り替えている場合があります。便利な機能ですが先述の通りキャッシュプラグインを導入する際は「テーマ側」や「Welcartプラグイン側」が考慮できていないパターンがあります。ログインとログアウトで表示を切り替えないように制御を変更しましょう。

<ul class="p-header__welcart-nav">
<?php
		if ( usces_is_membersystem_state() ) :
			if ( usces_is_login() ) :
?>
				<li><a href="<?php echo esc_attr( USCES_MEMBER_URL ); ?>"><?php echo esc_html( get_welcart_member_page_original_title() ); ?></a></li>
				<li class="p-header__welcart-nav__logout"><a href="<?php echo esc_attr( USCES_LOGOUT_URL ); ?>"><?php _e( 'Logout', 'tcd-w' ); ?></a></li>
				<li class="p-header__welcart-nav__member"><a href="<?php echo esc_attr( USCES_MEMBER_URL ); ?>"><?php printf( __( 'Hello %s', 'tcd-w' ), esc_html( usces_the_member_name( 'return' ) ) ); ?></a></li>
<?php
			else :
?>
				<li><a href="<?php echo esc_attr( USCES_NEWMEMBER_URL ); ?>"><?php _e( 'Registration', 'tcd-w' ); ?></a></li>
				<li class="p-header__welcart-nav__login"><a href="<?php echo esc_attr( USCES_LOGIN_URL ); ?>"><?php _e( 'Login', 'tcd-w' ); ?></a></li>
<?php
			endif;
		endif;
?>
				<li class="p-header__welcart-nav__cart"><a id="js-header-cart" href="<?php echo esc_attr( USCES_CART_URL ); ?>"><?php _e( 'Cart', 'tcd-w' ); ?><span class="p-header__welcart-nav__badge"><?php echo ( $totalquantity = usces_totalquantity_in_cart() ) ? $totalquantity : ''; ?></span></a></li>
			</ul>

以下が「ログイン、ログアウトの条件分岐処理」を外した例です。ユーザー目線ではログインとログアウトで処理を分けるのは便利な機能になりますが、キャッシュ化が絡むと少し勝手が変わってきます。

<ul class="p-header__welcart-nav">

				<li><a href="<?php echo esc_attr( USCES_NEWMEMBER_URL ); ?>"><?php _e( 'Registration', 'tcd-w' ); ?></a></li>
				<li class="p-header__welcart-nav__login"><a href="<?php echo esc_attr( USCES_LOGIN_URL ); ?>"><?php _e( 'Login', 'tcd-w' ); ?></a></li>
				<li class="p-header__welcart-nav__cart"><a id="js-header-cart" href="<?php echo esc_attr( USCES_CART_URL ); ?>"><?php _e( 'Cart', 'tcd-w' ); ?><span class="p-header__welcart-nav__badge"><?php echo ( $totalquantity = usces_totalquantity_in_cart() ) ? $totalquantity : ''; ?></span></a></li>

			</ul>

ログアウト機能をマイページに追加

上記の行なった対策によって「ログアウト」機能(テキストリンク)を追加する必要があります。ログアウトボタンはマイページ内の目立つ場所に追加すればOKです。マイページのphpファイルは以下となります。

/wc_templates/member/wc_member_page.php

ログアウト用のタグは以下です。

<div style="text-align: center; font-size: 24px; text-decoration: underline;"><a href="/usces-member?page=logout" class="usces_logout_a">ログアウトはこちら</a></div>

以上でキャッシュプラグイン導入の事前対策が完了となります。

まとめ

キャッシュプラグインを導入するコツは「デモサイトを構築して動作テストする」にかかってします。プラグインを購入した先にメールで「事前動作チェックのステージングサイト(デモサイト)用に異なるドメインを使いたい」と申請すればサブドメインでも異なるドメインでも承認してもらえるのでぜひお試しください。

当たり前ですが、対応方法は導入するテーマによってまったく違います。ECサイトをキャッシュ化するときは色々な状態(利用者のログイン・ログアウト状態等)を考慮して対策していきましょう。

最新式の無料プラグインを事前公開

WordPressは公式サイトに登録されているプラグインだけでは機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグイン無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
改良されたプラグインを確認する