[解決済み] head内のscriptを外部化する
- このトピックには41件の返信、3人の参加者があり、最後にfujiwaraにより13年、 11ヶ月前に更新されました。
-
投稿者投稿
-
2010年12月17日 6:32 AM #60840fujiwara参加者
お世話になっております。
商品カテゴリー(/item)のみを選択しても症状は同じでした。
一応、商品詳細ページにて吐き出されたコードを記します。
<script type='text/javascript'>
/* <![CDATA[ */
uscesL10n = {
'ajaxurl': "http://www.●●●●.com/wp-admin/admin-ajax.php",
'post_id': "432",
'cart_number': "4",
'is_cart_row': false,
'opt_esse': new Array( ),
'opt_means': new Array( ),
'mes_opts': new Array( ),
'key_opts': new Array( ),
'previous_url': "http://www.●●●●.com",
'itemRestriction': ""
}
/* ]]> */
</script>
<script type='text/javascript' src='http://www.●●●●.com/wp-content/plugins/usc-e-shop/js/usces_cart.js'></script>
n<!-- test_wp_footer nREQUEST_URI = /item/487.htmln -->n</body>
使っているテーマがダメなんですかね・・・
一度Twenty Tenに変えて試してみます。
その他、私にできる事があれば何でも言って下さい!
2010年12月17日 6:58 AM #60841fujiwara参加者お世話になっております!
テーマをTwenty Tenに変更し商品詳細ページを確認しました。
ちゃんと長いスクリプトがフッターに吐き出されてました。
カートに入れるボタンが無かったため動作確認は出来てませんが・・・
やはり私が使っているwpのDefault 1.7.2がダメなのか、
私のカスタマイズ方法がダメなのかですね。
そこで質問があります。
single.phpに絶対入れとかないといけないタグやコードってありますか?
2010年12月17日 10:14 AM #60842nanbuキーマスターありがとうございます。
まず、パーマリンクは関係ないようでした。
ちょっと原因を追究してみたいと思いますので、ファイルをいくつか見せていただけますでしょうか。
使っていらっしゃるDefault 1.7.2 のfunctions.php、footer.php を下記宛に添付いただけますか?
nanbuアットusconsort.com(アットは@)
2010年12月17日 11:10 AM #60843fujiwara参加者nanbu様
今メールをお送りいたしましたのでご確認ください。
何か足りないファイルがあればなんなりと!
2010年12月17日 5:59 PM #60844nanbuキーマスターありがとうございます。
ファイルを拝見しましたがそこには問題は見つかりませんでした。
テーマのfunctions.php に入れて頂いたコードですが、新しいものを作りましたのでどのように表示されるか見ていただけますでしょうか。
add_action('wp_footer', 'test_wp_footer');
function test_wp_footer(){
global $usces, $post;
echo "
<!-- Welcart_test_footer
REQUEST_URI = " . $_SERVER['REQUEST_URI'] . "
USCES_CART_NUMBER = " . USCES_CART_NUMBER . "
use_js = " . ($usces->use_js ? 'true' : 'false') . "
post_type = " . $post->post_mime_type . "
is_single = " . (is_single() ? 'true' : 'false') . "
is_cart_page = " . ($usces->is_cart_page($_SERVER['REQUEST_URI']) ? 'true' : 'false') . "
is_page = " . (is_page(USCES_CART_NUMBER) ? 'true' : 'false') . "
-->
";
}あと、確かめて頂きたいのですが、商品詳細ページに有るオリジナルスコアと言う部分を外してみていただけますでしょうか。そしてもう一つ右サイドバーのタブを外してみていただけますでしょうか。
お手数おかけしますがよろしくお願いします。
2010年12月18日 12:55 AM #60845fujiwara参加者お世話になっております。
早速テストしてみましたのでご報告いたします。
まず新たにfunction追加して出力されたコードです。
カート
<!-- Welcart_test_footer
REQUEST_URI = /usces-cart
USCES_CART_NUMBER = 4
use_js = true
post_type =
is_single = false
is_cart_page = true
is_page = false
-->
商品ページ
<!-- Welcart_test_footer
REQUEST_URI = /item/emerald/484.html
USCES_CART_NUMBER = 4
use_js = true
post_type =
is_single = false
is_cart_page = false
is_page = false
-->
オリジナルスコアとサイドバーのタブで使用してるjs、
そのほか私が任意で読み込んでいるjsを全て停止し試してみましたが
結果は同じでした。
2010年12月18日 2:50 AM #60846nanbuキーマスターありがとうございます。
post_type が空白なのと、is_single が false になっているところ、更にテーマを変えると正常に表示されるところから、どうやら global $post がテーマのどこかで書き換わってしまっている可能性が高いのではと推測します。
テーマを通った後の global $post は使わないように仕様を変更しました。Development Version(0.8.1.r1012181) で動作確認してみていただけますでしょうか。
よろしくお願いいたします。
2010年12月18日 3:42 AM #60847fujiwara参加者お世話になっております。
早速アップロードしましたが変わりませんでした。
下記がバージョンアップした後の出力コードです。
<!-- Welcart_test_footer
REQUEST_URI = /item/emerald/484.html
USCES_CART_NUMBER = 4
use_js = true
post_type =
is_single = false
is_cart_page = false
is_page = false
-->
2010年12月18日 6:41 AM #60848nanbuキーマスターお手数をおかけしています。
再度Development Version を更新しました。(0.8.1.r1012182)今一度、動作確認してみていただけますでしょうか。
よろしくお願いいたします。
念のため、新しいテスト用のコードです。
add_action('wp_footer', 'test_wp_footer');
function test_wp_footer(){
global $usces;
$item = $usces->item;
echo "
<!-- Welcart_test_footer
REQUEST_URI = " . $_SERVER['REQUEST_URI'] . "
USCES_CART_NUMBER = " . USCES_CART_NUMBER . "
post_id = " . $item->ID . "
use_js = " . ($usces->use_js ? 'true' : 'false') . "
post_type = " . $item->post_mime_type . "
is_single = " . (is_single() ? 'true' : 'false') . "
is_cart_page = " . ($usces->is_cart_page($_SERVER['REQUEST_URI']) ? 'true' : 'false') . "
is_page = " . (is_page(USCES_CART_NUMBER) ? 'true' : 'false') . "
-->
";
}2010年12月18日 12:02 PM #60849fujiwara参加者お世話になっております!
いけました!正常に動作しております!
一応新しいテスト用のコードで出力されたのを下記に記します。
<!-- Welcart_test_footer
REQUEST_URI = /item/emerald/484.html
USCES_CART_NUMBER = 4
post_id = 484
use_js = true
post_type = item
is_single = false
is_cart_page = false
is_page = false
-->
いやー本当に嬉しいです!
nanbu様には大変手間を取らせてしまい申し訳ございません。
私のサイトはこのままDevelopment Versionを使用して、
functionも少しの間書いたままで置いておきますので、良かったらご確認ください。
2010年12月18日 10:37 PM #60850nanbuキーマスター最後の更新は僕のミスによるものです。お手間をおかけしてしまいました。
でも、ここまでお付き合いありがとうございました。久しぶりに気持ちがいい解決ができました。「解決済み」フラグを立てておきますね。
お陰さまでとても勉強になりました。まとめるとこうです。
JavaScript を表示するかどうかは、wp_footer のタイミングでグローバルpost を利用して判断していました。しかし、テーマのどこかで$post が書き換えられてしまうらしく、うまく判断できませんでした。そこでグローバルpost には頼らず別の情報(Welcartが前もって生成したもの)を元に判断することにしました。
テストコードの「post_type = item」はこの記事は商品だと判断しています。そして、「is_single = false」はグローバルpost が消滅していることを物語っています。
2010年12月19日 3:25 PM #60851fujiwara参加者nanbu様
こちらこそ本当にありがとうございました。
これからもwelcartを使って、いいショッピングサイトを制作して行きたいと思います!
また行き詰まって質問する事もあるかと思います、その時はどうぞ宜しくお願い致します。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。