商品ページ、カートなど必要な場合だけJavaScriptをロードする
- このトピックには8件の返信、2人の参加者があり、最後にhorichanにより10年、 10ヶ月前に更新されました。
-
投稿者投稿
-
2013年12月5日 10:13 AM #57596horichan参加者
動作に関するご質問の場合は必ずご記入ください。
WordPress のバージョン:3.6.1
Welcart のバージョン:1.3.9
ご利用のテーマ:オリジナル
症状を確認したブラウザ:クローム
サーバー(会社名、サービス名):ロリポップ
SSLの利用:あり | 専用SSL | 共用SSL
WordPress のパーマリンク設定:あり
お世話になります。
素晴らしいプラグイン、ありがとうございます。
ウェルカートでネットショップを運営しておりますが、読み込み速度アップに取り組んでおります。
以下のような記事を見つけました。
必要な場合だけ JavaScript とスタイルシートをロードさせるには
http://contactform7.com/ja/loading-javascript-and-stylesheet-only-when-it-is-necessary/
こちらはコンタクトフォーム7に関するものですが、同様なことをウェルカートでも行うことは可能でしょうか。
ワードプレス+ウェルカートにてサイトを作っておりますが、商品ページやカートページなどショッピングに関係ないページが結構あります。
カスタム投稿タイプなどを使ってブログも作っていますので、これらのページにはウェルカートのJavaScriptやCSSを読み込ませないようにできたらありがたいです。
前述のやり方はまだ試してはいないのですが、ウェルカートにもあてはめてやってみることができるのか、またそうした場合、何か不具合が起こる可能性があるのか教えていただければと思います。
関連して、ウェルカートの場合、デフォルトでJQueryを読み込みますが、ヘッダー部分にJQuery、プラグインのcss、テーマファイルのcssという順番で読み込まれます。
これがグーグルのページスピードによると、順番が逆で、cssは前、JavaScriptは後に読み込むようにせよと指摘されます。ついでにJQueryはヘッダーではなくフッターで読み込むようにと言われます。
wp_deregister_scriptを使ってフッターに読み込ませるようにしましたが、フッター部分のウェルカートがロードするJavaScriptのコードの後ろへ出てしまうのでエラーになってしまうのです。
ウェルカートのデフォルトで、JQueryをフッター部分に正しい順番でロードさせるようにできればありがたいのですが…。
現段階で結構ですので、何か対処方法があれば教えてください。
どうぞよろしくお願い致します。
2013年12月11日 1:19 AM #68032nanbuキーマスターこんにちは。
WordPressのwp_enqueue_scriptのデフォルトのハンドルに’jquery’がございます。こちらのハンドルはwp_headerでのみ出力といった制限がかかっているようです。これは、WordPressが意図的にjqueryをヘッダに置くという認識でいるという事ではないでしょうか。
因みに、第4引数でwp_footerを強制しますが、フッタには出力されずヘッダに出ます。
wp_enqueue_script(‘jquery’, false, array(), false, true);
こちらの資料が非常にわかりやすいかと思います。
2013年12月15日 8:49 AM #68033horichan参加者第4引数でwp_footerを設定はできました。
ただ、ウェルカートのコードよりも後に出てしまうんですよね…。
現状では希望通りにすることは無理なようですので、あきらめます。
お答えいただきありがとうございました。
2013年12月17日 1:48 AM #68034nanbuキーマスター出ましたか!?
hookは何をお使いですか?
2013年12月19日 7:50 AM #68035horichan参加者前にやってみたときは、フッターに出たのですが、さきほどもう一度試してみたら、出ませんでした。
フックはわからないのですが、コードは以下のものを<?php wp_head(); ?>の前に入れました。
<?php
wp_deregister_script(‘jquery’);
wp_enqueue_script(‘jquery’, ‘http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js’, array(), ‘1.0’, false);
?>
いろいろ調べてフッターに出せるようになったという記事も見たのですが…
「ページスピード」は必ずここを治せというのですが、出来ないなら仕方がないですね。
cssについては、プラグインで出されるcssを使わない設定をすればいいので、それで順番については解決できそうです。
まだ試していませんが、ブログ関連の記事にウェルカートのスクリプトを出さないようにする設定ができればと思っています。それができれば、ヘッダー、フッターともにかなりすっきりしてくると思います。
今後ともどうぞよろしくお願い致します。
2013年12月28日 5:38 AM #68036nanbuキーマスターブログ記事でWelcartのショートコードを使わないのでしたら、JavaScriptは出力しなくても問題はございません。ただ、通常記事では、フッタにわずかなJavaScriptがあるだけですので、これを取っても然程スピードは変わらないかと思いますが。
2014年1月4日 12:53 AM #68037horichan参加者ご返信ありがとうございます。
今のところ、フッターに
<script type=’text/javascript’>
/* <![CDATA[ */
uscesL10n = {
‘ajaxurl’: “http://www.sy-golf.com/iomic/wp-admin/admin-ajax.php”,
‘post_id’: “253”,
‘cart_number’: “2953”,
‘is_cart_row’: false,
‘opt_esse’: new Array( ),
‘opt_means’: new Array( ),
‘mes_opts’: new Array( ),
‘key_opts’: new Array( ),
‘previous_url’: “http://www.sy-golf.com/iomic”,
‘itemRestriction’: “”
}
/* ]]> */
</script>
<script type=’text/javascript’ src=’http://www.sy-golf.com/iomic/wp-content/plugins/usc-e-shop/js/usces_cart.js’></script>
というコードが表示されるのですが(ご利用ガイドなどのページ関連)これは出ていても正常でしょうか。
確認してみたらブログページには上記のコードは出力されていませんでした。
ブログはカスタム投稿タイプを利用しており、シングル、アーカイブも別のファイルを作って表示させております。今のところショートコードは使っていないのでこれでいいのですが、逆に今の状況ではブログ内ではショートコードは使えないのでしょうね。
ウェルカートのコードが出力されるファイルとされないファイル、何か設定などで違いがあるのでしょうか。プログラムは全くわからないのですが、できればページ関連もブログと同様にウェルカートのコードが出ないようにできればすっきりするなあと思っています。
2014年1月10日 9:07 AM #68038nanbuキーマスター申し訳ございません。
これを削除すると、利用されているユーザーの方に影響が出ますので、今のところ削除することはできません。しかし、カスタム投稿の場合は削除しても問題ないかと思います。検討したいと思います。
2014年1月13日 10:06 AM #68039horichan参加者ありがとうございます。
とりあえずブログ部分にコードが出ていないので(なぜかわかりませんが)このまますすめたいと思います。
商品ページだけに出すように制御できるとありがたいですが、ページ部分は読み込み速度は関係ないので、これで十分です。
まだまだ勉強不足ですが、がんばってよりよいサイトを作りたいと思います。今後共どうぞよろしくお願い致します。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。