J'ai un vrai problème qui tire les cheveux ici.
J'ai commencé à nettoyer un plugin que j'ai créé et trié certaines des fonctions dans différents fichiers.
mais j'ai un problème avec wp_enqueue_scripts.
quand je place la fonction où je m'enregistre et mets en file d'attente dans le fichier php principal et essaie de mettre mon script en file d'attente à partir de là, il fonctionne comme il se doit
cependant, si je déplace la fonction dans un fichier php différent et essaie de la mettre en file d'attente à partir de ce fichier et d'inclure ce fichier php à partir du fichier php principal, rien ne se passe cependant, toutes les autres fonctions de ce fichier php fonctionnent comme elles le devraient
dois-je appeler une fonction wordpress à partir de mon autre fichier php pour pouvoir la retirer de là ou?
MODIFIER:
Si si place et appelle la fonction dans mon fichier php principal comme ci-dessous, il fonctionne comme un charme et le fichier js est affiché dans la tête lorsque je le cherche avec firefox
function scripts() {
wp_register_script( 'load_table', plugins_url( 'path/js/load_table.js', __FILE__ ), array( 'jquery' ) );
wp_enqueue_script( 'load_table' );
}
add_action( 'wp_enqueue_scripts', 'scripts' );
Cependant, si j'essaie de l'écrire comme ci-dessous, rien ne se passe et on ne le trouve pas dans la tête
main.php:
include'path/to/other.php';
autre.php:
function scripts() {
wp_register_script( 'load_table', plugins_url( 'vagt_oversigt/js/load_table.js', __FILE__ ), array( 'jquery' ) );
wp_enqueue_script( 'load_table' );
}
add_action( 'wp_enqueue_scripts', 'scripts' );
Les problèmes semblent se produire lorsque j'utilise des hooks avec des fonctions sur other.php
juste echo "hello world";
dans other.php cela fonctionne comme un charme.
Mais si j'essaie d'appeler echo dans une fonction par init, rien ne se passe non plus.
autre.php:
function test() {
echo "hello world";
}
add_action('init', 'test');
BTW! oui j'ai essayé de changer le chemin sans succès. des idées? :(
J'ai trouvé le problème ....
J'ai couru main.php comme:
function run_this(){
include'path/to/other.php';
}
add_shortcode('shortcode', 'run_this');
Et la plupart du contenu de other.php est arrivé sauf les crochets qui ne fonctionnaient pas, puis j’ai essayé d’utiliser add_action('init', 'run_this');
, puis cela a fonctionné ... sauf que j’obtiens une erreur fatale qui ne me permet pas de redéclarer deux fonctions: D
Vous devez placer le code de mise en file d'attente dans une fonction et utiliser add_action pour appeler la fonction à laquelle vous vous enregistrez.
Comme ci-dessous
add_action( 'wp_enqueue_scripts', 'your_function_name', 10 );