web-dev-qa-db-ja.com

wp_headアクションが機能しない

私が作っているプラ​​グインを介して頭にコードを追加しようとしています(すなわちトラッキングスクリプトのブロック)。

プラグインは、ユーザーがオプションテーブルに追加される詳細を入力するためのインターフェースを持っています。これまでのところ、これはすべて問題なく動作しています。しかし、それから私はオープンがあり、それから頭に追加するならば条件付きステートメントを書きたいです。基本的に、私はこれをすべてメインプラグインファイルに含めていますが、このように見えます。

if(get_option( 'MyOptionName' )){
    function testingone(){ ?>
        <script>var Script = GoesHere; </script>
    <?php ;}
    add_action('wp_head','testingone');
}

データを取得してオプションに追加する実際のブロックの中にこれを配置しようとしましたが、うまくいきませんでした。また頭に何も注入しません。私が見た人の中にはadd_actionを関数の上に置いているところもありますが、コーデックスの中では以下にその例を示しています。どちらにせよ私は試して失敗しました。

これがどこで問題になっているのか、誰にでもわかりますか?

乾杯

1
robolist

add_action()を関数の外側に引っ張り、条件をコールバックの内側に入れます。また、スクリプトを直接印刷する場合は、wp_print_scriptsの代わりにwp_headを使用してください。構文エラーもあります。

function testingone(){ 
    if( get_option( 'MyOptionName' ) ) {
        ?>
        <script>var Script = GoesHere; </script>
        <?php
    }
}
add_action( 'wp_print_scripts','testingone' );
7
Chip Bennett

コードを変えてみてください。

function testingone() {
    if( FALSE !== get_option( 'MyOptionName' ) ) {
        echo( 'ok, this is in the head!' );
    } 
}
add_action( 'wp_head', 'testingone' );

同様に、テーマのファイル(ほとんどの場合header.php)を調べて、wp_head()関数が呼び出されていることを確認し、そのサイトにMyOptionNameオプションが設定されていることを確認します。

追加編集 - Javascriptを<head>にダンプするのではなく、wp_enqueue_script()を使用してJavascriptをサイトに追加することもできます。

参考文献

3
Pat J

下記のcodeを参照してください。関数内にIFステートメントを追加します。

function testingone(){ 
    if(get_option( 'MyOptionName' )){
    ?>
    <script>var Script = GoesHere; </script>
    <?php } 
      }
add_action('wp_head','testingone');
3
dipali
function plugin_script() {
       wp_enqueue_script( 'Jquery-min', WP_PLUGIN_URL. '/Test Plugin/jquery-min.js', false, '1.11.0' );<br/>
       wp_enqueue_style('pluginstyle', WP_PLUGIN_URL. '/Test Plugin/pluginstyle.css',false,'1.0',"all");<br/>
}
add_action( 'wp_head', 'plugin_script' );

"wp_head"アクションフックは "head"セクション内で起動されます。

wp_enqueue_script()はスクリプトの実行に使用され、wp_enqueue_styleはPluginのスタイルシートに使用されます。 "WP_PLUGIN_URL"テーマのプラグインフォルダからデータを取得します。 "Test plugin"はあなたのプラグイン名 "pluginstyle.css"プラグインスタイルシートです。 "jquery-min.js"プラグインスクリプト。

0
Pullata Praveen