C'est la première fois que j'utilise JQuery dans un plugin WordPress, et j'ai quelques problèmes.
Voici mon document "principal" du plugin:
<?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);
}
?>
Voici mon Javascript qui affiche simplement une alerte (scheduler.js):
jQuery(document).ready(function($){
alert("Hello World!");
});
Je me demande pourquoi l'alerte n'apparaît pas. J'ai également essayé d'ajouter le wp_enqueue_script
au fichier HTML
, qui ressemble à ceci:
<?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>
Je suis très nouveau dans WordPress et toute direction ou aide serait la bienvenue. Si vous avez besoin d'un autre code, s'il vous plaît faites le moi savoir, mais c'est la majeure partie. Le seul autre code que j'ai est celui des vues pour les autres liens.
Vous utilisez une action invalide:
add_action('wp_enqueue_script', 'run_js_script');
L'action correcte est wp_enqueue_scripts
(pluriel), pas wp_enqueue_script
(singulier). Utilisez ceci à la place:
add_action('wp_enqueue_scripts', 'run_js_script');
Même problème ici:
add_action('wp_register_script', 'register_script');
Il suffit de le raccorder à wp_enqueue_scripts
pour plus de simplicité:
add_action('wp_enqueue_scripts', 'register_script');
En fait, deux meilleures options:
wp_register_script()
dans le même rappel run_js_script
que votre appel wp_enqueue_script()
.wp_register_script()
entièrement et utilisez simplement les paramètres complets dans wp_enqueue_script()
.