メインプラグインファイルに次のコードがあります。
<?php
/*
Plugin Name: Awesome Slide Show
*/
add_action('admin_head', 'wp_ss_plugin_include');
add_action('admin_menu', 'wp_ss_plugin_add_menu');
function wp_ss_plugin_include() {
echo "<style>";
require 'settings/style.css';
echo "</style>";
echo "<script>";
require 'settings/script.js';
echo "</script>";
}
function wp_ss_plugin_add_menu() {
add_menu_page("Slide Show", "Slide Slow", "manage_options", "wp-ss-plugin",
function () {
require "settings/index.php";
}
);
}
?>
settings /ディレクトリにはindex.php、style.css]の3つのファイルがあります。 、およびscript.js。それらのファイルの内容は、ここから から取られます 。
まず、私は自分のプラグインの設定ページで画像のスライドショーを見ることになっています。しかし、スライド(前後)を移動することはできません。デバッグしようとしましたが、クリックイベントが機能していないことがわかりました。 (上記リンクのコードをご覧ください)。スタイルシートはロードされているがスクリプトはロードされていないと思います。
第二に、私がスクリプトとスタイルをロードするのに使ったテクニックが正しいかどうか知りたいのです。私はHello Dollyプラグインからアイデアを得ました。これは正しい方法ですか?それとも、すべてのスタイルやスクリプト、その他すべてを使って自分のプラグイン用に自分の設定ページを作成するのがベストプラクティスですか?私はPlugins settings page
のためにそうする方法を見つけることができませんでした。私はThemes settings page
のものしか見つけられませんでした。
やり方はwp_enqueue_script
がフックするときにwp_enqueue_style()
とadmin_enqueue_scripts
関数を使うことでした。
スタイルとスクリプトをそれぞれwp_register_style
とwp_register_script
に登録することはオプションですが、ここでうまく説明されているように いくつかの良い利点があります 。
これが実用的なスクリプトです。
<?php
/*
Plugin Name: Awesome Slide Show
*/
// admin_init
// ************************************************************************************************
function wp_ss_plugin_admin_init_cb() {
// Register CSS
wp_register_style(
'wp_ss_plugin_style', plugin_dir_url( __FILE__ ) . '/settings/style.css'
);
// Register JS
wp_register_script(
'wp_ss_plugin_script', plugin_dir_url( __FILE__ ) . '/settings/script.js',
'jquery' //jQuery dependency
);
}
add_action('admin_init', 'wp_ss_plugin_admin_init_cb');
// admin_enqueue_scripts
// ************************************************************************************************
function wp_ss_plugin_admin_enqueue_scripts_cb() {
//Enqueue CSS
wp_enqueue_style('wp_ss_plugin_style');
//Enqueue JS
wp_enqueue_script('wp_ss_plugin_script');
}
add_action('admin_enqueue_scripts', 'wp_ss_plugin_admin_enqueue_scripts_cb');
// admin_menu
// ************************************************************************************************
function wp_ss_plugin_admin_menu_cb() {
add_menu_page("Slide Show", "Slide Slow", "manage_options", "wp-ss-plugin",
function () {
require "settings/index.php";
}
);
}
add_action('admin_menu', 'wp_ss_plugin_admin_menu_cb');
?>
私が直面したもう一つの問題は、スクリプトとスタイルが機能した後でさえ、jQueryは機能しなかったということでした。 wp_register_script
の3番目のパラメータを使用して私のスクリプトへの依存関係としてjQueryを追加した後、それは解決されました。