Próbuję zrobić coś podobnego do tego pytania tutaj: remove_action lub remove_filter z klasami zewnętrznymi?
Próbuję usunąć
<!-- This site is optimized with the Yoast WordPress SEO plugin v1.0.3 - http;//yoast.com/wordpress/seo/ -->
wiadomość z wtyczki.
Zanim zaczniesz na mnie krzyczeć, że to może być nieetyczne, autor mówi, że można to zrobić tutaj: http://wordpress.org/support/topic/plugin-wordpress-seo-by-yoast-how-to-remove-dangerous -inserted-yoast-message-in-page-headers? replies = 29 # post-2503475
Znalazłem klasę, która dodaje komentarz tutaj: http://plugins.svn.wordpress.org/wordpress-seo/tags/1.2.8.7/frontend/class-frontend.php
Zasadniczo WPSEO_Frontend
klasa ma funkcję o nazwie debug_marker
, która jest następnie wywoływana przez funkcję o nazwie head
, która jest następnie dodawany do wp_head
IN__Construct
Jestem nowy na zajęciach, ale znalazłem sposób na całkowite usunięcie głowy
global $wpseo_front;
remove_action( 'wp_head', array($wpseo_front,'head'), 1, 1 );
ale chcę tylko usunąć z niego debug_marker
część. Próbowałem tego, ale to nie działa
remove_action( 'wp_head', array($wpseo_front,'head','debug_marker'), 1, 1 );
Jak powiedziałem, jestem nowy na zajęciach, więc każda pomoc byłaby świetna.
źródło
Dzięki za całą pomoc, w końcu to rozwiązałem. Utworzyłem functions.php dla mojego motywu podrzędnego, a następnie dodaję
źródło
remove_class_action
aby usunąć akcję / filtr gist.github.com/tripflex/c6518efc1753cf2392559866b4bd1a53Nie sądzę, że będziesz w stanie to zrobić za pomocą
remove_action
. Argument funkcji wremove_action
nie pomoże, ponieważdebug_marker()
funkcja nie była funkcją użytą wadd_action()
wywołaniu.Yoast prawdopodobnie ma coś
add_action( "wp_head", "head" )
w swoim kodzie. Możesz więc usunąć funkcję „head”, aledebug_marker
nie została ona wyraźnie dodana jako akcja.Mógłbyś
WPSEO_Frontend
klasę i przeciążdebug_marker
funkcję, aby zwrócić „”. TBH, nie jestem pewien, jak to by działało pod względem ładowania WP przez wtyczkę, ale warto to zbadać.źródło
Znalezienie tego wątku po pracy na tym samym rozwiązaniu, co wspomniane przez
Steve Claridge
, to znaczy:Rozszerz
WPSEO_Frontend
klasę i przeciążdebug_marker
funkcję, aby zwrócić „”Szczegółowo opisałem poniższe kroki, chociaż utknąłem w ostatnim kroku.
Utwórz wtyczkę dostosowywania
Jak wspomniano w tym artykule z WP Tavern , „najłatwiejszym sposobem na osiągnięcie tego jest stworzenie wtyczki funkcjonalnej, która będzie działała obok niego”.
Więc zacząłem tworzyć moją pierwszą wtyczkę po tym artykule z ElegantTheme .
Rozszerz odpowiednią klasę.
Wtedy sprawy się skomplikowały. Dodałem następujące, ale z jakiegoś powodu moja funkcja zastępowania nadal nie jest uruchamiana.
źródło
Przekonałem się, że możesz usunąć akcję debug_marker w functions.php. Wtyczka Yoast jest wykonywana w akcji wp_head. Właśnie wziąłem hak akcji, który następuje bezpośrednio po tym, a mianowicie wp_enqueue_scripts i tam podłączyłem funkcję, która usunęła wynik debug_marker. W tym celu musisz również przekazać obiekt wtyczki. Również numer priorytetu musi być taki sam jak ustawiony z poziomu wtyczki.
Jednak to nie usuwa
część, bo to odbija się echem w kluczowej funkcji otoki Wtyczka za głowę . Możesz spróbować to zastąpić.
źródło
Aby dodać do odpowiedzi Ahmada, możesz po prostu usunąć wszystkie komentarze HTML z taką samą ilością kodu, ponieważ Yoast nie jest jedyną wtyczką, która to robi.
źródło
Natknąłem się na fragment, który usuwa wszystkie komentarze SEO Yoast WordPress z interfejsu. Zmienia także metodę buforowania danych wyjściowych, z której korzystają odpowiedzi @ bryan-willis i @ ahmad-m.
Po prostu umieść fragment kodu w motywie
functions.php
lub niestandardowym pliku php wtyczki / motywu.Zostawię to tutaj jako odniesienie - podziękowania należą się autorowi fragmentu
źródło
To jest zmodyfikowana wersja @ ahmad-m Odpowiedź , stosując filtry możesz wprowadzić wiele zmian treści w html nagłówka.
źródło
Znaleziono podobne rozwiązanie, dla
functions.php
którego nie używa priorytetu zakodowanego na stałe,2
ale dynamicznie czyta i używa priorytetu z Yoastadd_action()
.źródło
Zobacz funkcję flush_cache w wordpress-seo / frontend / class-frontend.php
Znajdź ten wiersz kodu
Zamienić
Dzięki twórcy tej świetnej wtyczki.
źródło