it-swarm.com.de

Wie kann ich ändern, was in wp_head ausgegeben wird, ob von einem Thema oder von Wordpress im Allgemeinen?

Ich habe mit YSLOW an der Leistung meiner Website gearbeitet und festgestellt, dass Wordpress in meinem Dokumentenkopf Dinge ausgibt, von denen ich weiß, dass sie ich nicht brauche.

Zum Beispiel rufe ich jQuery 1.9 bereits über das Google CDN auf, sodass ich den Aufruf von jQuery in wp-includes nicht benötige.

Außerdem enthält ein Plugin ein Stylesheet, das ich nicht benötige (weil ich ohnehin 99% dieser Styles in meinem Theme überschreibe), also möchte ich diesen Aufruf auch loswerden.

Wie bearbeite ich also, was von der Funktion wp_head() ausgegeben wird, ob Wordpress es dort ablegt (wie der jQuery-Aufruf wp-includes) oder ob ein Plugin es dort ablegt (wie der Stylesheet-Aufruf)?

5
Joel Glovier

Erstens: Keine benutzerdefinierten Versionen von WordPress-Skripten in die Warteschlange stellen , einschließlich (und besonders) jQuery.

Zweitens, um Ihre Frage zu beantworten: Diese Plugin-Skripte und Stylesheets werden mit add_action() über einen Rückruf, der in einen der folgenden Aktions-Hooks eingebunden ist, in die Warteschlange gestellt:

  • wp_head
  • wp_enqueue_scripts
  • wp_print_scripts
  • wp_print_styles

(Es gibt andere, aber diese sind am wahrscheinlichsten.)

Innerhalb des Rückrufs werden die folgenden Funktionen zum Einreihen verwendet:

Für ein Stylesheet in der Plug-in-Warteschlange mit dem Namen foobar.css müssen Sie in den Plug-in-Dateien nach Aufrufen von wp_enqueue_style() suchen und dann den Namen der Callback-Funktion notieren, in der es aufgerufen wird. Suchen Sie dann den Aufruf add_action(), der auf diese Rückruffunktion verweist. z.B.:

add_action( 'wp_head', 'pluginname_enqueue_styles' );

Sobald Sie diesen Anruf gefunden haben, können Sie ihn selbst überschreiben mit remove_action() :

remove_action( 'wp_head', 'pluginname_enqueue_styles' );
5
Chip Bennett

Ich bin nicht der Meinung, dass das Überschreiben von Standardversionen mit einer von CDN gehosteten Version eine schlechte Praxis ist. Sie müssen jedoch sicherstellen, dass Sie eine Version verwenden, mit der alle Ihre Plugins kompatibel sind. Achten Sie darauf, gründlich zu testen.

Fügen Sie Ihrem functions.php Folgendes hinzu, um die Standard-jQuery mit der CDN-Version zu überschreiben:

function replace_jquery() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', false, '1.9.1');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'replace_jquery');
2
Matt Shelton