wake-up-neo.com

Verwenden Sie wp_enqueue_scripts aus der enthaltenen PHP-Datei

Ich habe hier ein echtes Haarproblem.

Ich habe angefangen, ein Plugin, das ich erstellt habe, zu bereinigen und einige der Funktionen in verschiedenen Dateien zu sortieren.

aber ich habe ein Problem mit wp_enqueue_scripts.

wenn ich die Funktion dort platziere, wo ich mich registriere und in die Haupt-PHP-Datei einreihe und versuche, mein Skript von dort aus in die Warteschlange zu stellen, funktioniert es wie es sollte

wenn ich jedoch die Funktion in eine andere PHP-Datei verschiebe und versuche, sie aus dieser Datei in die Warteschlange zu stellen und diese PHP-Datei aus der Haupt-PHP-Datei aufzunehmen, geschieht nichts. Alle anderen Funktionen dieser PHP-Datei funktionieren jedoch so, wie sie sollten

muss ich eine WordPress-Funktion aus meiner anderen PHP-Datei aufrufen, um sie von dort aus zu entfernen, oder?

BEARBEITEN:

Wenn Sie die Funktion in meiner Haupt-PHP-Datei wie unten platzieren und aufrufen, funktioniert sie wie ein Zauber, und die js-Datei wird im Kopf angezeigt, wenn ich sie mit Firefox suche

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' );

Aber wenn ich versuche, es wie unten zu schreiben, passiert nichts und es kann auch nicht im Kopf gefunden werden

main.php:

include'path/to/other.php';

other.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' );

Die Probleme scheinen aufzutreten, wenn ich Hooks mit Funktionen auf other.php verwende

nur echo "hello world"; in other.php funktioniert es wie ein zauber.

Aber wenn ich versuche, Echo mit in einer Funktion von Init aufzurufen, geschieht auch nichts.

other.php:

function test() {

echo "hello world";
}
add_action('init', 'test');

Übrigens! Ja, ich habe versucht, den Pfad ohne Erfolg zu ändern. irgendwelche Ideen? :(

1
Alexander

Ich habe das Problem gefunden ...

Ich habe main.php wie folgt ausgeführt:

function run_this(){

include'path/to/other.php';
}
add_shortcode('shortcode', 'run_this');

Und der größte Teil des Inhalts von other.php kam hoch, außer dass die Hooks nicht funktionierten, als ich versuchte, add_action('init', 'run_this'); zu verwenden, und dann funktionierte es .... außer, dass ich einen fatalen Fehler bekam, bei dem ich einige Funktionen nicht zweimal neu deklarieren kann: D

1
Alexander

Sie müssen den Enqueue-Code mit in eine Funktion einfügen und add_action verwenden, um die Funktion aufzurufen, bei der Sie sich registrieren.

Wie unten

add_action( 'wp_enqueue_scripts', 'your_function_name', 10 );
0
Harry