web-dev-qa-db-ja.com

どのようにしてプラグインのディレクトリパスを<script> </script>に返すことができますか?

パスをハードコーディングする代わりに、プラグインディレクトリのパスを<script> </script>に返すにはどうすればよいですか。

これがcustom-page.phpです。

<?php get_header(); ?>

<script type="text/javascript" src="http://local.wordpress.test/wp-content/plugins/path-to-file/script.js"></script>

<?php get_footer(); ?>
1
65535

これを見てみましょう: https://wordpress.stackexchange.com/a/119084/121955

plugins_url( "path/to/file", __FILE__ );

編集:

<script src="<?php echo plugins_url( "path/to/file", __FILE__ ); ?>"></script>
2
Liam Stewart

プラグインのURLをJavascriptで利用可能にするには

/**
  *register the javascript
  */
  wp_register_script( 'some_handle', plugins_url( "plugin-name/path-to-file/script.js") );

  /**
  *localize the plugin url.
  *someObjectName.pluginsUrl then can be used to return
  *the plugin url to the javascript
  */
  wp_localize_script('some_handle', 'someObjectName', array(
      'pluginsUrl' => plugins_url( "plugin-name/path-to-file/script.js"),
  ));

JavascriptからプラグインのURLは次のように返されます。

<script type="text/javascript">
     var url = someObjectName.pluginsUrl;
     alert( url );
 </script>
2
65535

これは私が開発した私のプラグインの一つからの例です。

    function insert_scripts()
{
    wp_enqueue_script('jquery', '<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>', '1.0.0', true);

    wp_enqueue_script( 'test1', plugin_dir_url( __FILE__ ) . 'js/test1.js', array('jquery'), '1.0.0', true );
    wp_enqueue_script( 'test2', plugin_dir_url( __FILE__ ) . 'js/test2.js', array('jquery'), '1.0.0', true );
}

add_action( 'wp_enqueue_scripts', 'xwp_insert_scripts' );

上記のコードに従って、スクリプトは頭の中にロードされます。ただし、変更が加えられた場合は、他の場所にロードされる可能性があります。この機能はfunctions.phpファイルに追加する必要があります。注:コアテーマのfunctions.phpファイルにこれを追加すると、更新時に修正されます。最善の策は、子テーマを作成してカスタムfunctions.phpファイルを使用することです。

0
Joshua Trimm
<script type="text/javascript" src="<?php echo plugins_url( "plugin-name/path-to-file/script.js"); ?>"></script>
0
65535