以下のスクリプトとスタイルシートを管理者用パネルにロードするだけの場合、どうすればWordpressプラグインに含めることができますか?
<script type="text/javascript" src="/wp-includes/js/jquery/jquery.js?ver=1.11.3"></script>
<link rel="stylesheet" type="text/css" href="assets/chosen.min.css">
<script type="text/javascript" src="assets/chosen.jquery.min.js"></script>
これを行うにはおそらくさまざまな方法があります。個人的には、 "new"ページと "edit"ページ(datepickerなど)にのみ小さなスクリプトをロードするために次のように使用します。
function load_my_admin_scripts( $hook ) {
if (( $hook == 'post.php' || $hook == 'post-new.php' )) {
wp_enqueue_script(
'my-datepicker', // name / handle of the script
SCRIPTS . 'script.js', // path to the script
array( 'jquery', 'jquery-ui-datepicker' ), // array of registered handles this script depends on
'1.0', // script version number (optional)
true // enqueue the script before </head>
);
}
}
add_action( 'admin_enqueue_scripts', 'load_my_admin_scripts' );
function load_admin_script_wpse_217608() {
$assets_path = plugins_url('assets/', __FILE__);
wp_enqueue_style('chosen-style', $assets_path . 'chosen.min.css');
wp_enqueue_script('jquery');
wp_enqueue_script('chosen-script', $assets_path . 'chosen.jquery.min.js', array(), '1.0.0', true);
}
add_action( 'admin_enqueue_scripts', 'load_admin_script_wpse_217608' );
$assets_path
はアセットフォルダーへのパスです。
編集:混乱やハードコードされた文字列を避けるためにplugins_url()
を使って@cale_bに移動します。
私は最初に追加しました
function __construct() {
if( is_admin() ) {
add_action( 'admin_enqueue_scripts', array( &$this, 'xsmi_load_admin_script' ) );
...
それはクラスの中ですから。
そして機能...
function xsmi_load_admin_script() {
wp_register_style( 'chosencss', plugins_url( 'assets/chosen.css', __FILE__ ), true, '', 'all' );
wp_register_script( 'chosenjs', plugins_url( 'assets/chosen.jquery.js', __FILE__ ), array( 'jquery' ), '', true );
wp_enqueue_style( 'chosencss' );
wp_enqueue_script( 'chosenjs' );
}
wp_register_script
の最後にあるtrue
はフッターにロードします。これが私がそれを機能させることができる唯一の方法です。助けて!