Wie kann ich ändern, was in wp_head ausgegeben wird, ob durch ein Thema oder WordPress im Allgemeinen?

Ich habe mit YSLOW an der performance meiner Website gearbeitet und festgestellt, dass WordPress es in meinem Dokumentenkopf ausgibt, von dem ich weiß, dass ich es nicht brauche.

Zum Beispiel rufe ich bereits jQuery 1.9 vom Google CDN an, sodass ich den Aufruf von jQuery in wp-includes nicht benötige.

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

Also, wie bearbeite ich, was von der wp_head() -function ausgegeben wird, ob WordPress es dort platziert (wie der wp-includes jQuery-Aufruf) oder ob ein Plugin es dort platziert (wie der Stylesheet-Aufruf)?

Solutions Collecting From Web of "Wie kann ich ändern, was in wp_head ausgegeben wird, ob durch ein Thema oder WordPress im Allgemeinen?"

Erstens: Richten Sie keine benutzerdefinierten Versionen von WordPress-Core-gebündelten Skripts ein , einschließlich (und insbesondere ) jQuery.

Zweitens, um Ihre Frage zu beantworten: Diese Plugin-Skripte und Stylesheets werden mithilfe von add_action() über einen Callback in einen der folgenden Aktions-Hooks add_action() :

  • wp_head
  • wp_enqueue_scripts
  • wp_print_scripts
  • wp_print_styles

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

Innerhalb des callbacks werden die folgenden functionen zum Einreihen in die Warteschlange verwendet:

  • Stylesheets: wp_enqueue_style()
  • Skripte: wp_enqueue_script()

Für ein Plugin-eingereihtes Stylesheet mit dem Namen foobar.css Sie in den Plugin-Dateien nach Aufrufen von wp_enqueue_style() und dann den Namen der Callback-function notieren, in der es aufgerufen wird. Suchen Sie dann den Aufruf add_action() , der auf diese callbackfunktion verweist. z.B:

 add_action( 'wp_head', 'pluginname_enqueue_styles' ); 

Sobald Sie diesen Aufruf gefunden haben, können Sie ihn mit Hilfe von remove_action() selbst remove_action() :

 remove_action( 'wp_head', 'pluginname_enqueue_styles' ); 

Ich stimme nicht zu, dass das Überschreiben von Standardversionen mit einer CDN-gehosteten Version eine schlechte Übung ist. Sie müssen jedoch sicherstellen, dass Sie eine Version verwenden, mit der alle Ihre Plugins kompatibel sind. Seien Sie sicher, gründlich zu prüfen.

Um die Standard-jQuery mit der CDN-Version zu überschreiben, fügen Sie Ihrer functions.php :

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