0

まず、私はphpに非常に慣れていないので、ご容赦ください。からキーを読み取る wordpress テンプレートの javascript (.js) ファイルがありますvar googledockey。それを変更するには、.js ファイルを手動で開き、その変数を変更する必要があります。私がやりたいことは、作成したページに保存された場所から .js ファイルにキーを取得させることです。これは、キーを入力するためのテキストフィールドを持つ管理ページのコードです。

<?php   
    if($_POST['gdocs2wp_hidden'] == 'Y') {  
        //Form data sent  
        $gdkey = $_POST['gdocs2wp_gdkey'];  
        update_option('gdocs2wp_gdkey', $gdkey);  


        ?>  
        <div class="updated"><p><strong><?php _e('Options saved.' ); ?></strong></p></div>  
        <?php  
    } else {  
        //Normal page display  
        $gdkey = get_option('gdocs2wp_gdkey');  
    }  
?>  

キーが保存され、ページを開くたびにキーが表示されるので、この半分が機能していることがわかります。これは私が困惑しているところです。管理ページのサブディレクトリにある .js ファイル内で、var googledockey毎回機能するキーを手動で保存する必要がありました。<?php echo $gdkey; ?>キーを取得しようと試みget_option('gdocs2wp_gdkey');ましたが、運がありませんでした。php は .js ファイル内で動作しますか? 誰かが私を助けるための洞察を持っていますか? ありがとう

var jqueryNoConflict = jQuery;
//var googledockey = <?php echo $gdkey; ?>
var googledockey = "INSERTmyKEYhere";

// begin main function
jqueryNoConflict(document).ready(function(){

    initializeTabletopObject(googledockey);

});
4

4 に答える 4

1

1. スクリプトを登録する

JavaScript ファイルを作成し、テーマ フォルダーに配置して、WordPress に登録します。

wp_register_script(
    'google-docs',
    get_bloginfo('template_directory') . '/scripts/google-docs.js'
);

ドキュメント: http://codex.wordpress.org/Function_Reference/wp_register_script

2. スクリプトをキューに入れる

テンプレートでスクリプトが必要になるたびに、ファイルをキューに入れます。

wp_enqueue_script(
    'google-docs'
);

ドキュメント: http://codex.wordpress.org/Function_Reference/wp_enqueue_script

3. スクリプトをローカライズする

これにより、JavaScript で PHP 変数を使用できるようになります。

wp_localize_script(
    'google-docs',
    'google_docs_vars',
    array(
        'key' => $google_doc_key
    )
);

ドキュメント: http://codex.wordpress.org/Function_Reference/wp_localize_script

4.スクリプトで変数を使用する

これで、スクリプト内の変数にアクセスできるようになりました。

var google_docs_key = google_docs_vars.key;

それでおしまい。これで問題は解決すると思いますし、適切な方法でもあります。

于 2013-06-13T16:30:30.007 に答える
0

通常、JS ファイルは PHP 用に解析されません。これを行うための最も簡単な (最も美しいとは言えませんが) 方法は、おそらく次のいずれかです。

1)ページテンプレート自体の隠しDOM要素の値をエコーし​​、JSを使用してその要素を取得し、変数を設定します(したがって、ページの隠し要素内に値を配置するか、属性などとして、 JS を使用してその値を取得し、変数に割り当てます)。

2) 上記と同様に、変数宣言をインライン スクリプト ( <script>code</script>) に入れるだけです。これは、PHP 用に解析されるためです。Seriyia の回答を参照してください。

3)jQueryで非常に簡単な単純なAJAX呼び出しを使用して、JSからPHP関数にデータを渡し、JSにfunctions.php戻すことができます。ただし、AJAX に慣れていない場合、これは価値があるよりも面倒な作業になる可能性があります。

于 2013-06-13T17:44:43.423 に答える