C'est un triste jour dans le monde quand je recherche quelque chose sur Google et qu'il ne renvoie rien. J'essaie d'utiliser le datepicker par défaut (ou n'importe quel datepicker à ce stade) et je ne peux pas en raison de mon manque de connaissances avec Wordpress / PHP. Dans mon plugin, j'essaie d'enregistrer jquery et l'interface utilisateur et, apparemment, je brise d'autres parties de WordPress dans le processus. Quelqu'un peut-il me dire ce que je fais mal et s'il peut fournir une solution de travail, je ferai disparaître tout mon code:
add_action('init', 'add_styles');
function add_styles(){
wp_deregister_style('simpleschoolstyles');
wp_register_style('simpleschoolstyles', SSM_STYLEFILE);
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js');
wp_deregister_script( 'jquery-ui' );
wp_register_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js');
wp_deregister_style( 'jquery-ui' );
wp_register_style( 'jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/pepper-grinder/jquery-ui.min.css' );
wp_deregister_script('maskedinput');
wp_register_script('maskedinput', SSM_PLUGIN_URL . '/includes/js/jquery.maskedinput.min.js');
wp_deregister_script('simpleschool');
wp_register_script('simpleschool', SSM_PLUGIN_URL . '/includes/js/simpleschool.js');
}
add_action('wp_enqueue_scripts', 'load_scripts');
add_action('admin_enqueue_scripts', 'load_scripts');
function load_scripts()
{
wp_enqueue_style('jquery-ui');
wp_enqueue_style('simpleschoolstyles');
wp_enqueue_script('jquery');
wp_enqueue_script('jquery-ui');
wp_enqueue_script('maskedinput');
wp_enqueue_script('simpleschool');
}
J'ai besoin que jQuery soit disponible dans la zone d'administration ainsi que le front-end pour la saisie des données utilisateur. Veuillez aider quelqu'un. Je suis presque en train de retirer mes ongles car j'ai déjà arraché tous mes cheveux ... Je suppose que je dois me mettre en file d'attente au mauvais moment, mais encore une fois, en raison de ma connaissance limitée de WordPress, je me suis creusé une tombe rapidement.
MISE À JOUR: J'ai modifié mon script et maintenant ne charge que jQuery UI et j'ai testé que jQuery et l'interface utilisateur sont tous deux chargés et ont du succès pour ces deux, mais pas un objet existant dans le DOM:
add_action('init', 'init_scripts');
function init_scripts(){
wp_deregister_style('simpleschoolstyles');
wp_register_style('simpleschoolstyles', SSM_STYLEFILE);
//wp_deregister_script( 'jquery-ui' );
wp_register_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js');
//wp_deregister_style( 'jquery-ui' );
wp_register_style( 'jquery-ui-pepper-grinder', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/pepper-grinder/jquery-ui.min.css' );
//wp_deregister_script('maskedinput');
wp_register_script('maskedinput', SSM_PLUGIN_URL . '/includes/js/jquery.maskedinput.min.js');
//wp_deregister_script('simpleschool');
wp_register_script('simpleschool', SSM_PLUGIN_URL . '/includes/js/simpleschool.js');
wp_enqueue_style('jquery-ui-pepper-grinder');
wp_enqueue_style('simpleschoolstles');
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'jquery-ui' );
wp_enqueue_script('simpleschool');
}
Mon test:
jQuery(document).ready(function(){
//jQuery('.datepick').mask("99/99/9999");
//jQuery('.phone').mask("(999) 999-9999");
jQuery( '.datepick' ).datepicker( 'option', 'dateFormat', 'yyyy-mm-dd' ); // <-- this fails ????
alert('jQuery BETTER BE LOADED!!!'); // <---this worked
jQuery('<div>crazy wordpress and their php</div>').dialog(); // <--- this worked too
});
la source
ajax.googleapis.com
.Réponses:
Étant donné que toutes les bibliothèques dont vous avez besoin pour le sélecteur de dates sont fournies avec WordPress et sont enregistrées avec toutes les dépendances appropriées, tout ce que vous devez vraiment faire est:
Si vous regardez ensuite la source de la page, vous verrez que jQuery, jQuery-UI et jQuery-UI-Datepicker sont tous chargés.
Bien sûr, vous devrez charger vous-même tous les autres scripts dans un joli style comme vous le faites déjà, mais vous devez les enregistrer avec leurs dépendances - troisième paramètre.
Par exemple...
De cette façon, vous pouvez charger cela avec ...
... et sachez que les dépendances-- jQuery-- seront également chargées.
la source
wp_enqueue_scripts
- - se chargera partout sur le front-end, sans compter la page de connexion. Mais vous voulez vraiment charger les scripts uniquement sur les pages particulières qui en ont besoin afin de pouvoir modifier ce rappel pour être plus spécifique à la page. Pour le backend,admin_enqueue_scripts
mais encore une fois, vous ne voulez vraiment les charger que si nécessaire. Il y a plusieurs hooks spécifiques aux pages sur le backend. Je ne peux pas dire ce dont vous avez besoin sans savoir où vous avez besoin des scripts.Pour compléter l'excellente réponse de @ s_ha_dum , voici un exemple montrant comment utiliser le sélecteur de date jQuery UI intégré sur votre page de plugin.
Le résultat ressemblera à ceci:
Téléchargez sur GitHub .
Les parties les plus importantes:
datepicker({ dateFormat: "yy-mm-dd" })
afin de savoir à quoi vous attendre dans votre gestionnaire de rappel.J'ai d'abord construit une classe de base pour avoir quelque chose que je peux aussi utiliser dans d'autres réponses et pour garder le code réel du script de sélecteur de date spécifique et simple.
Classe de base
Wpse_Plugin_Options_Page
Il ne nous reste plus qu'à redéfinir les pièces les plus importantes. Agréable et court.
Classe spéciale
Wpse_Datepicker_Example
Il y a encore beaucoup de place pour des améliorations, mais pour commencer, cela devrait être utile.
la source
Il existe plusieurs façons d'inclure jQuery dans un thème. J'utilise toujours la version groupée WP que je trouve très simple. Pour configurer correctement les choses, nous devons nous assurer que la page WP aura les fichiers suivants à inclure dans le chargement de la page. Pour charger le script et le style de soufflet, ajoutez du code de soufflet dans le fichier theme functions.php.
Script pour une utilisation frontale
Script pour une utilisation back-end
Nous pouvons écrire une fonction à accrocher pour des pages spécifiques, telles que single.php, page ou page de plugin. J'ai ajouté ou accroché 'options-general.php' pour l'affichage sur Settigns-> Date Picker . Il suffit de mettre ce code également dans le fichier funtions.php ou sous ce code.
Après avoir ajouté ce code, vous aurez un sélecteur de date dans le menu Admin-> Règlements-> Sélecteur de date . Si vous avez besoin d'aide pour obtenir cette option, demandez à n'importe quelle requête de lancer des commentaires sur Ajouter un jQuery DatePicker au thème ou au plugin WordPress .
la source