Ich entwickle eine einfache WordPress-App, aber ich habe ein Problem, da alle Plugin-Skripte vor denen gerendert werden, die in meiner eingereiht sind functions.php
.
Hier ist ein Beispielausschnitt der functions.php
:
function my_scripts() {
wp_register_script('app-js', get_template_directory_uri() . '/javascripts/app.js', array('jquery'), null, true );
wp_enqueue_script('app-js');
}
add_action( 'wp_enqueue_scripts', 'my_scripts');
Wichtig ist, dass (nach Best Practice mein JS so eingestellt ist, dass es unten auf der Seite gerendert wird.
Ich habe auch einige Plugins, die auf dem Thema laufen. Das Problem ist, dass die Ausgabe so aussieht:
<!-- Note the plugin appears first -->
<script type="text/javascript" src="http://localhost/wordpress/wp-content/plugins/my-plugin/acl-plugin.js"></script>
<!-- And the main JS appears second -->
<script type="text/javascript" src="http://localhost/wordpress/wp-content/themes/my-theme/javascripts/app.js"></script>
</body>
</html>
Wie kann ich WordPress zwingen, das Haupt-JS anzuzeigen (von dem ich glaube, dass es gerendert wird von wp_head()
ganz unten auf der Seite erscheinen?
Das WordPress wp_head() -Methode gibt nur Skripte oder Stile aus, die diesen letzten Parameter in WordPress haben wp_enqueue_script() einstellen FALSCH.. wenn es eingestellt ist Stimmt es wird in der Fußzeile über die gerendert wp_footer()
Sie können die Priorität ändern, wann sie aufgerufen und eingefügt wird, indem Sie die anpassen $Priorität Parameter in der add_action()
http://codex.wordpress.org/Function_Reference/add_action
$priority (int) (optional) Wird verwendet, um die Reihenfolge anzugeben, in der die einer bestimmten Aktion zugeordneten Funktionen ausgeführt werden. Niedrigere Zahlen entsprechen einer früheren Ausführung, und Funktionen mit derselben Priorität werden in der Reihenfolge ausgeführt, in der sie der Aktion hinzugefügt wurden. Standard: 10
add_action( $hook, $function_to_add, $priority, $accepted_args );
Sehen Sie sich auch die folgenden beiden WordPress-Methoden an:
wp_enqueue_script() :
https://developer.wordpress.org/reference/functions/wp_enqueue_script/
wp_enqueue_script( string $handle, string $src="", array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )
wp_register_script() :
https://developer.wordpress.org/reference/functions/wp_register_script/
wp_register_script( string $handle, string $src, array $deps = array(), string|bool|null $ver = false, bool $in_footer = false )
Versuche dies..
Damit muss man vielleicht spielen $Priorität Parameter
function my_scripts() {
wp_register_script('app-js', get_template_directory_uri() . '/javascripts/app.js', array('jquery'), null, true );
wp_enqueue_script('app-js');
}
add_action( 'wp_enqueue_scripts', 'my_scripts', 20, 1);
Wo haben Sie über diese „Best Practice“ gelesen? Ich bin neugierig, weil ich gerade daran arbeite, es zu ändern.
– vhs
5. Mai 2017 um 10:24 Uhr