WordPressプラグインでJQueryを使用するのは今回が初めてですが、いくつか問題があります。
これが私の "メイン"プラグインドキュメントです。
<?php
/*
Plugin Name: Dump-It Scheduler
Plugin URI:
Description:Description
Version: 1.0
Author: Blaine Anderson
Author URI: http://www.blainevanderson.net
License:
*/
add_action( 'wp_enqueue_script', 'load_jquery' );
add_action('wp_register_script', 'register_script');
add_action('wp_enqueue_script', 'run_js_script');
add_action('admin_menu', 'add_master_schedule');
add_action('admin_menu', 'add_customer_search');
add_action('admin_menu', 'add_edit_trucks');
add_action('admin_menu', 'add_new_customer');
//Add master schedule link to Admin bar in WP
function add_master_schedule()
{
add_menu_page('Master Schedule', 'Master Schedule', 'administrator', 'Master_Dump-it_Schedule', 'display_menu');
}
//Display the master schedule when link is clicked
function display_menu()
{
include( plugin_dir_path( __FILE__ ) . '/Views/admin_main_display.php');
}
//Add customer search link to admin bar
function add_customer_search()
{
add_menu_page('Customer Search', 'Customer Search', 'administrator', 'Customer_Search', 'display_customer_search');
}
//Display customer search page
function display_customer_search()
{
include( plugin_dir_path( __FILE__ ) . '/Views/search_customer.php');
}
//Add edit trucks link to admin bar
function add_edit_trucks()
{
add_menu_page('Edit Trucks', 'Edit Trucks', 'administrator', 'Display_Edit_Trucks', 'display_edit_trucks');
}
//Display edit trucks page when link is clicked.
function display_edit_trucks()
{
include( plugin_dir_path( __FILE__ ) . '/Views/edit_trucks.php');
}
//Add 'add customer' link to admin bar
function add_new_customer()
{
add_submenu_page('Customer_Search', 'Add Customer', 'Add Customer', 'administrator', 'Add_Customer', 'display_add_customer');
}
//Display add customer page when link is clicked.
function display_add_customer()
{
include(plugin_dir_path(__FILE__) . '/Views/add_customer.php');
}
//Load jquery into plugin
function load_jquery()
{
wp_enqueue_script( 'jquery' );
}
function run_js_script()
{
wp_enqueue_script('my_plugin_script');
}
function register_script()
{
wp_register_script( 'my_plugin_script', plugins_url('/js/scheduler.js', __FILE__), array('jquery'), '1.0', false);
}
?>
ここに私のJavascriptがあります。単にアラート(scheduler.js)を表示します。
jQuery(document).ready(function($){
alert("Hello World!");
});
なぜアラートが表示されないのでしょうか。私はHTML
ファイルにwp_enqueue_script
を追加しようとしました。
<?php
wp_enqueue_script( 'my_plugin_script' );
?>
<table width="100%" id="menubar">
<tr>
<td><a href="" onclick="display_customer_search();">Master Schedule</a> | <a href=truckroutes.php>Create Truck Routes</a> | <a href="search.php">Customer Search</a> | <a href="trucks.php">Edit Trucks</a> | <a href="customeredit.php?id=new">Add Customer</a> | <a href="/cms/login.php">CMS Login</a> | </td>
</tr>
</table>
私はWordPressにはとても不慣れですし、どんな方向性や助けもいただければ幸いです。あなたが他のコードを必要とするならば、私に知らせてください、しかしそれはそれのほとんどです。私が持っている他の唯一のコードは他のリンクに対するビューです。
無効なアクションを使用しています。
add_action('wp_enqueue_script', 'run_js_script');
正しい動作はwp_enqueue_scripts
(単数形)ではなくwp_enqueue_script
(複数形)です。代わりにこれを使ってください。
add_action('wp_enqueue_scripts', 'run_js_script');
ここで同じ問題:
add_action('wp_register_script', 'register_script');
単純にするためにwp_enqueue_scripts
にフックするだけです。
add_action('wp_enqueue_scripts', 'register_script');
実際には、2つのより良い選択肢があります。
wp_register_script()
呼び出しを、wp_enqueue_script()
呼び出しと同じrun_js_script
コールバックに入れます。wp_register_script()
呼び出しを完全に排除し、wp_enqueue_script()
の中で完全なパラメーターを使うだけです。