[解決済み] head内のscriptを外部化する

フォーラム 要望と提案 [解決済み] head内のscriptを外部化する

  • このトピックには41件の返信、3人の参加者があり、最後にfujiwaraにより13年、 11ヶ月前に更新されました。
12件の投稿を表示中 - 31 - 42件目 (全42件中)
  • 投稿者
    投稿
  • #60840
    fujiwara
    参加者

    お世話になっております。

    商品カテゴリー(/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に変えて試してみます。

    その他、私にできる事があれば何でも言って下さい!

    #60841
    fujiwara
    参加者

    お世話になっております!

    テーマをTwenty Tenに変更し商品詳細ページを確認しました。

    ちゃんと長いスクリプトがフッターに吐き出されてました。

    カートに入れるボタンが無かったため動作確認は出来てませんが・・・

    やはり私が使っているwpのDefault 1.7.2がダメなのか、

    私のカスタマイズ方法がダメなのかですね。

    そこで質問があります。

    single.phpに絶対入れとかないといけないタグやコードってありますか?

    #60842
    nanbu
    キーマスター

    ありがとうございます。

    まず、パーマリンクは関係ないようでした。

    ちょっと原因を追究してみたいと思いますので、ファイルをいくつか見せていただけますでしょうか。

    使っていらっしゃるDefault 1.7.2 のfunctions.php、footer.php を下記宛に添付いただけますか?

    nanbuアットusconsort.com(アットは@)

    #60843
    fujiwara
    参加者

    nanbu様

    今メールをお送りいたしましたのでご確認ください。

    何か足りないファイルがあればなんなりと!

    #60844
    nanbu
    キーマスター

    ありがとうございます。

    ファイルを拝見しましたがそこには問題は見つかりませんでした。

    テーマの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') . "
    -->
    ";
    }

    あと、確かめて頂きたいのですが、商品詳細ページに有るオリジナルスコアと言う部分を外してみていただけますでしょうか。そしてもう一つ右サイドバーのタブを外してみていただけますでしょうか。

    お手数おかけしますがよろしくお願いします。

    #60845
    fujiwara
    参加者

    お世話になっております。

    早速テストしてみましたのでご報告いたします。

    まず新たに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を全て停止し試してみましたが

    結果は同じでした。

    #60846
    nanbu
    キーマスター

    ありがとうございます。

    post_type が空白なのと、is_single が false になっているところ、更にテーマを変えると正常に表示されるところから、どうやら global $post がテーマのどこかで書き換わってしまっている可能性が高いのではと推測します。

    テーマを通った後の global $post は使わないように仕様を変更しました。Development Version(0.8.1.r1012181) で動作確認してみていただけますでしょうか。

    よろしくお願いいたします。

    #60847
    fujiwara
    参加者

    お世話になっております。

    早速アップロードしましたが変わりませんでした。

    下記がバージョンアップした後の出力コードです。

    <!-- 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

    -->

    #60848
    nanbu
    キーマスター

    お手数をおかけしています。

    再度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') . "
    -->
    ";
    }

    #60849
    fujiwara
    参加者

    お世話になっております!

    いけました!正常に動作しております!

    一応新しいテスト用のコードで出力されたのを下記に記します。

    <!-- 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も少しの間書いたままで置いておきますので、良かったらご確認ください。

    #60850
    nanbu
    キーマスター

    最後の更新は僕のミスによるものです。お手間をおかけしてしまいました。

    でも、ここまでお付き合いありがとうございました。久しぶりに気持ちがいい解決ができました。「解決済み」フラグを立てておきますね。

    お陰さまでとても勉強になりました。まとめるとこうです。

    JavaScript を表示するかどうかは、wp_footer のタイミングでグローバルpost を利用して判断していました。しかし、テーマのどこかで$post が書き換えられてしまうらしく、うまく判断できませんでした。そこでグローバルpost には頼らず別の情報(Welcartが前もって生成したもの)を元に判断することにしました。

    テストコードの「post_type = item」はこの記事は商品だと判断しています。そして、「is_single = false」はグローバルpost が消滅していることを物語っています。

    #60851
    fujiwara
    参加者

    nanbu様

    こちらこそ本当にありがとうございました。

    これからもwelcartを使って、いいショッピングサイトを制作して行きたいと思います!

    また行き詰まって質問する事もあるかと思います、その時はどうぞ宜しくお願い致します。

12件の投稿を表示中 - 31 - 42件目 (全42件中)
  • このトピックに返信するにはログインが必要です。