Ich versuche hier etwas Ähnliches wie diese Frage zu tun: remove_action oder remove_filter mit externen Klassen?
Ich versuche das zu entfernen
<!-- This site is optimized with the Yoast WordPress SEO plugin v1.0.3 - http;//yoast.com/wordpress/seo/ -->
Nachricht vom Plugin.
Und bevor Sie mich anschreien, wie unethisch dies sein könnte, sagt der Autor, dass es in Ordnung ist, dies hier zu tun: http://wordpress.org/support/topic/plugin-wordpress-seo-by-yoast-how-to-remove-dangerous -inserted-yoast-message-in-page-headers? replies = 29 # post-2503475
Ich habe die Klasse gefunden, die den Kommentar hier hinzufügt: http://plugins.svn.wordpress.org/wordpress-seo/tags/1.2.8.7/frontend/class-frontend.php
Grundsätzlich hat die WPSEO_Frontend
Klasse eine Funktion namens, debug_marker
die dann von einer Funktion namens benannt wird, head
die dann zu wp_head
in hinzugefügt wird__Construct
Ich bin neu im Unterricht, aber ich habe einen Weg gefunden, den Kopf dadurch vollständig zu entfernen
global $wpseo_front;
remove_action( 'wp_head', array($wpseo_front,'head'), 1, 1 );
aber ich möchte nur das debug_marker
Teil daraus entfernen . Ich habe es versucht, aber es funktioniert nicht
remove_action( 'wp_head', array($wpseo_front,'head','debug_marker'), 1, 1 );
Wie gesagt, ich bin neu im Unterricht, daher wäre jede Hilfe großartig.
quelle
Vielen Dank für all Ihre Hilfe, ich habe es endlich gelöst. Ich habe eine functions.php für mein untergeordnetes Thema erstellt und dann hinzugefügt
quelle
remove_class_action
die Aktion / den Filter gist.github.com/tripflex/c6518efc1753cf2392559866b4bd1a53Ich glaube nicht, dass Sie dazu in der Lage sein werden
remove_action
. Das Funktionsargument inremove_action
hilft Ihnen nicht, da diedebug_marker()
Funktion nicht die Funktion war, die imadd_action()
Aufruf verwendet wurde.Yoast hat vermutlich so etwas
add_action( "wp_head", "head" )
in seinem Code. Sie können also die "Kopf" -Funktion entfernen, die jedochdebug_marker
nicht explizit als Aktion hinzugefügt wurde.Du könntest
WPSEO_Frontend
Klasse und überladen Sie diedebug_marker
Funktion, um "" zurückzugeben. TBH, ich bin mir nicht sicher, wie dies in Bezug auf das Laden des Plugins durch WP funktionieren würde, könnte aber eine Untersuchung wert sein.quelle
Finden dieses Threads nach der Arbeit an derselben Lösung wie der von
Steve Claridge
, das heißt:Erweitern Sie die
WPSEO_Frontend
Klasse und überladen Sie diedebug_marker
Funktion, um "" zurückzugeben.Ich habe die folgenden Schritte detailliert beschrieben, obwohl ich im letzten Schritt stecken bleibe.
Erstellen Sie ein Anpassungs-Plugin
Wie in diesem Artikel von WP Tavern erwähnt , "besteht der einfachste Weg, dies zu erreichen, darin, ein Funktions-Plugin zu erstellen, das daneben ausgeführt wird".
Also habe ich mein erstes Plugin nach diesem Artikel von ElegantTheme erstellt .
Erweitern Sie die entsprechende Klasse.
Dann wurde es kompliziert. Ich habe Folgendes hinzugefügt, aber meine überschreibende Funktion wird aus irgendeinem Grund immer noch nicht ausgelöst.
quelle
Ich habe festgestellt, dass Sie die Aktion debug_marker in functions.php entfernen können. Das Yoast-Plugin wird in der Aktion wp_head ausgeführt. Ich habe gerade den direkt darauf folgenden Action-Hook genommen, nämlich wp_enqueue_scripts, und dort eine Funktion eingebunden, die die debug_marker-Ausgabe entfernt hat. Dazu müssen Sie auch das Plugin-Objekt übergeben. Außerdem muss die Prioritätsnummer mit der im Plugin festgelegten übereinstimmen.
Dies entfernt jedoch nicht die
Teil, denn das ist in der Plugin-entscheidenden Wrapper - Funktion Echo Kopf . Sie könnten versuchen, das zu überschreiben.
quelle
Um Ahmads Antwort zu ergänzen, können Sie einfach alle HTML-Kommentare mit der gleichen Menge Code entfernen, da Yoast nicht das einzige Plugin ist, das dies tut.
quelle
Ich bin auf einen Ausschnitt gestoßen, der alle SEO-Kommentare von Yoast WordPress aus dem Frontend entfernt. Es ändert auch den Ansatz der Ausgabepufferung, den die Antworten von @ bryan-willis und @ ahmad-m verwenden.
Platzieren Sie das Snippet einfach auf Ihrem Thema
functions.php
oder einer benutzerdefinierten Plugin / Theme-PHP-Datei.Ich werde es hier als Referenz belassen - die Gutschrift geht an den Autor des Snippets
quelle
Dies ist eine modifizierte Version von @ ahmad-m Answer . Durch Anwenden von Filtern können Sie mehrere Inhaltsänderungen am Header-HTML vornehmen.
quelle
Es wurde eine ähnliche Lösung gefunden, für
functions.php
die keine fest codierte Priorität verwendet wird,2
sondern die Priorität von Yoast dynamisch gelesen und verwendet wirdadd_action()
.quelle
Siehe die Funktion flush_cache in der Datei wordpress-seo / frontend / class-frontend.php
Suchen Sie diese Codezeile
Ersetzen mit
Vielen Dank an den Schöpfer dieses großartigen Plugins.
quelle