WordPress head erleichtern

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Kommentare

  
  1. Danke für die Information, jetzt kann ich das mal ein wenig besser anpassen demnächst im Zuge meines Redesign. :)

  2. Paul sagt:

    Kann man diese Abfragen nicht durch statische Texte ersetzen?

    • @Paul: ja, aber damit wird die Flexibilität eingeschränkt; bringt auch in der Performance nicht viel, da es von WP gecacht word.

  3. Crazy Girl sagt:

    Direkt nach dem Update letzte Woche habe ich das auch gleich wieder gemacht. Ist einiges dazu gekommen bei 2.8 was WP in den Head schreibt. Und gerade z.B. auch die Feed Links sind oft eh schon im Theme drin, doppelt gemoppelt hält nicht unbedingt besser ;-)
    Den index_rel_link finde ich persönlich auch ziemlich unrelevant. Wenn die Suchmaschinen nicht wissen was meine Startseite ist, wer soll es denn dann noch wissen ;-) Ist ja oft genug drin, wie z.B. auch in der Home Navigation.

  4. Markus sagt:

    super danke für den tipp

  5. Thorsten sagt:

    Hallo Frank,
    danke für den Beitrag! Wie finde ich allerdings die Namen der Funktionen heraus?
    Das Plugin Admin Management Xtended z.b. fügt im wp_head folgendes ein:

    meta name='AMEWP' content='2.0.2'

    Der Code der hierfür verantworlich ist lautet (general-functions.php, Zeile 784-786):
    function ame_feheader_insert() {
    echo "\n";
    }

    Mittels
    remove_action('wp_head','ame_feheader_insert');
    habe ich versucht den meta-tag zu entfernen - leider ohne Erfolg.

    Hast du ein Tipp für mich?

    • Ich vermute, dass du die Priorität nicht beachtest, ansonsten ist das richtig.
      remove_action('wp_head', 'ame_feheader_insert', 1);
      Alternativ wäre es sicher gut, wenn man Oliver, der Autor der Plugins, darüber informiert, ob man das nicht anders lösen kann.

  6. Thorsten sagt:

    Vielen Dank, das war die Lösung! Ich werde Oliver mal eine E-Mail zu dem Thema schreiben.

    Nun noch eine Frage, die nextgen-gallery von Alex Rabe fügt den Version-Tag so ein:

    add_action('wp_head', create_function('', 'echo "\nversion . '\' />\n";') );

    In dem Fall habe ich ja keinen Namen der Funktion, wie unterbinde ich dann das es eingefügt wird?

    Gruß Thorsten

  7. Crazy Girl sagt:

    Ansonste xe doch einfach die entsprechede function im Plugin aus (vor jede Zeile 2 //) und schon ist sie deaktiviert. Musst Dir halt eine Notiz machen, damit beim nächsten Update des Plugins nicht wieder alles weg ist. Etwas mühseelig, aber ich mache das auch so wenn mir in Plugins was nicht gefällt ;-)

  8. Markus sagt:

    für was genau ist den eigentlich der rsd_link?

    • Damit wird RSD Support geleistet, zum Beispiel für den Zugriff von Dekstop- oder iPhone-Tools.

      Really Simple Discovery is a way to help client software find the services needed to read, edit, or "work with" weblogging software.

  9. Markus sagt:

    besten dank frank^^

  10. Henning sagt:

    Hallo alle,
    ich habe den Artikel nun zwei Mal gelesen, kann aber eine Information nicht finden oder überlese sie ständig: wo müssen die remove_action(); Aufrufe denn eingebaut werden? Unmittelbar im template vor dem wp_head-Funktionsaufruf?

    Danke für einen Hinweis,
    Henning

    • @Henning: Sie gehören in die functions.php des Themes oder in ein extra Plugin; sie sind eher gedacht für Leute, die wissen was sie tun, auch wenn man damit nichts kaputt machen kann. Am besten sind sie in der functions.php aufgehoben, da sie in dem Fall explizit zum Theme gehören. Gibt es die Datei nicht, einfach als php-Datei anlegen und im Theme speichern, WP erkennt sie dann.

  11. Henning sagt:

    @Frank Ich werde mal testen. Programmiererfahrung gibt es reichlich, das bedeutet leider noch nicht, dass sich einem der Datei-Wust von WordPress gleich auf den ersten Blick erschliesst - bei den themes muss ich immer noch einen Moment draufschauen ;-) . Vielen Dank!

  12. Frederik sagt:

    Ist es denn nun sinnvoll (sprich: gibt es Beweise für die Effektivität?), optionale Funktionen zu entfernen oder nicht? Ich habe mich über doppelte Einträge auch schon gewundert, jedoch frage ich mich, ob es nicht einfach schnurzpiepegal ist ;-)

    • Für die Last ist nicht sonderlich wichtig, da die meisten Einträge gecacht werden. Der Link zum ersten und nächsten Beitrag ist da schon andrs, der ist jedesmal ein Query. Hinzu kommt, dass weniger Markup Zeit bringt und bei Google besser ankommt.

  13. Markus sagt:

    Hi Frank, hab mal wieder ne Frage und wusste auf die schnelle nicht wo es reinpasst. Du schreibts im Beitrag wie ich den Head erleichtern kann, ich würde gerne wissen, wie ich den Admin-Head von WordPress um etwas ergänzen kann. Ich habe mein neues Theme fast fertig und diesmal auch eine Theme-Options-Page. Da das Template zweisprachig ist bzw. sein soll, muss ich meine Lokalisierung irgendwie auch im WP-Backend verankern, also via load_theme_textdomain (xy) ... Hast Du eine Idee wie ich das hinbekomme und muss dann noch ne Pfadangabe zu den Lokalisierungsdateien mit rein? Habs schon mit add_action (admin_head) probiert aber das wäre wohl auch zu einfach gewesen ;-)

    Greets, Markus

    • @Markus: die Lokalisierung kann via Hook admin_init integriert werden, wenn es aber AJAX Komponenten gibt, dann ist das zu spät und daher ist der Hook init besser, allerdings solltest du es mit dem Conditional Tag is_admin() abfragen, damit die der Hook nur im Admin gezogen wird. Die Sprachdatei selbst wird bei Backend-Sachen und Plugins mit einer anderen Funktion gezogen: load_plugin_textdomain()
      Bsp.:

      if ( !is_admin() ) {
      	add_action( 'init', array(&$this, 'textdomain') );
      }
      
      function textdomain() {
      	load_plugin_textdomain( FB_MY_TEXTDOMAIN, false, dirname( plugin_basename(__FILE__) ) . '/languages' );
      }
  14. Markus sagt:

    Erstmal Danke für die schnelle Antwort, leider funktioniert das in dieser Form nicht. Irgendwie muss WordPress den Weg in den Theme-Ordner finden, und sofern ich das richtig verstehe wir bei load_plugin_textdomain der Ordner /plugins nach dem File durchforstet. Ich hab die mo/po-files im Hauptordner des Themes, aber wirklich keinen Plan wie ... bleibt einfach alles englisch und die deutsche Übersetzung wird nicht angezeigt ...

  15. Holger Kruse sagt:

    Danke für den Tipp, genau das hab ich gesucht..
    Wenn man WordPress nicht immer nur als Blog sondern auch ab und zu als CMS benutzt, nerven die Tags ohne Ende :)

  16. tux. sagt:

    Irgendwas mache ich falsch.

    remove_action('wp_head', 'wlwmanifest_link', 1);
    remove_action('wp_head', 'rsd_link', 1);
    remove_action('wp_head', 'ame_feheader_insert', 1);

    Dennoch bleiben alle drei Tags erhalten. Liegt es an der Priorität?

    • @tux.: nein, sollte nicht so sein; denn wenn man die Parameter der Prio weg lässt, dann wird 10 genutzt, also später und das klappt in meinen Tests bestens. Die ersten beiden Filter kannst du auch via Plugin entfernen - Secure WordPress; den letzten kenne ich nicht, eventuell ein Plugin. Da kann es nicht immer erfolgreich sein, denn nicht jedes Plugin geht über den Filter wp_head um Inhalte in den head zu bringen.

  17. tux. sagt:

    Der letzte ist das weiter oben schon angesprochene Plugin, die ersten beiden tun halt nix ...

    Dann werde ich mal Secure WordPress anschauen, bevor ich mir hier noch was kaputtspiele. Danke für die Antwort. ;)

  18. Presswurst sagt:

    Hallo,

    vielen Dank für die Tipps.

    Allerdings muss ich mal "dumm" nachfragen:

    Das Plugin "fancyzoom" setzt mehrere Javascript-Aufrufe in den Header.

    Wie kann ich nun erreichen, dass diese Scripte nur dann geladen werden, wenn ein Beitrag aufgerufen wird, der fancyzoom verwendet?

    Danke für die Antwort im Voraus.

    • @Presswurst: nicht so einfach, dazu müsste man das Plugin erweitern, eine Box in den Edit-Bereich bringen, der du sagst, ja lade das JS oder es muss über den Artikel geparst werden, ob es notwendig ist, was aber auch wieder Last kostet.

  19. Olli sagt:

    Vielen Dank. Der Artikel hat mir bei meinem neuen Theme bzw. Projekt ein Stück weit weitergeholfen. Hab´s bislang immer über die Löschung des gesamten wp_head() geregelt. Und bestimmte Sachen wieder eingefügt!

    So ist´s natürlich besser!

    Gruß
    Olli

  20. ärdbaer sagt:

    Hallo,
    kann man so auch irgendwie das Custom Header Image (keine Ahnung, wie es genau heißt) aus dem Hook entfernen?
    Wenn ja, wie genau geht das, das bringt mich gerade zur Verzweiflung...?

    Gruß,
    Björn

  21. Immer wieder ein hilfreiches Idyll hier ... die WordPresswissensoase sozusagen. :O)

  22. realloc sagt:

    Ich habe gerade das Phänomen bei der RC3, dass beispielsweise

    remove_action ('wp_head', 'parent_post_rel_link', 10, 0);

    keine Wirkung mehr zeigt. Irgendwelche Ideen? wp-inlucdes/default-filters.php scheint an der Stelle, wo die Action hinzugefügt wurde, unverändert zu sein.

  23. realloc sagt:

    Leider sehe ich aber sowohl

    link rel='prev'

    als auch

    link rel='next'

    im Header, trotzdem ich entsprechende remove_action-Anweisungen seit einiger Zeit so benutze und es bisher funktionierte. Ich werde mir das noch mal genauer anschauen.

    Wie schon geschrieben, ich beobachte das gerade bei 3.0 RC3.

  24. realloc sagt:

    Ich hab's gefunden. Um mal zu sehen, was da überhaupt so alles registriert ist, habe ich mir $GLOBALS['wp_filter'] mal ausgeben lassen. Ich denke, dass hier noch eine Fehler in der RC3 steckt.

    remove_action ('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

    Das ist übrigens nicht der einzige Filter bzw. Action, die so ein Postfix hat.

  25. thomas sagt:

    hallo realloc,
    hatte auch mit wp3 das nichtsnutzige rel prev wieder drin.
    hab Franks if Abfrage:
    if ( !remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ) )
    remove_action ('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
    genommen

    ....und weg ist gut.

  26. realloc sagt:

    @thomas Danke, aber das ist mir inzwischen bekannt (siehe auch unter dem Workaround).

  27. Jan sagt:

    Wie entfernt man denn rel="shortlink" ?
    Habe dazu leider nichts gefunden im Netz...

  28. Jan sagt:

    Thx das funktioniert. Habe nun noch rel="next" entdeckt, das sollte auch weg.. mal schaun wie das klappt

  29. Bernhard sagt:

    Danke. Dein Artikel von 2009 scheint trotz der vergangenen Zeit immer noch sehr hilfreich.

    Hast Du eigentlich auch einen Tipp, wie ich die Versionsnummer des Next Gen Gallery Plugins sauber aus dem Header bekomme? Aktuell kommentiere ich einfach die Zeile 131 add_action('wp_head', create_function(...) ); in der Datei nggallery.php aus. Aber das wird mir ja bei einem Plugin-Update gelöscht.

  30. Hey, vielen Dank für den Tipp!
    Der Header ist jetzt deutlich schlanker und auch ein lästiger W3C-Fehler ist jetzt nicht mehr vorhanden, alles grün!
    Deine Website hat einen festen Platz in den Favoriten, aber heute bin ich über die Suma gekommen. Dabei wurde mir genau angezeigt, das ich über eine Suche gekommen bin und mit welchem Suchbegriff.
    Ist das ein Plugin, welches dieses Funktionalität liefert?

    Gruß aus Köln
    Horst Gräbner

© 2013, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift