Saya mencoba melakukan sesuatu yang mirip dengan pertanyaan ini di sini: remove_action atau remove_filter dengan kelas eksternal?
Saya mencoba menghapus
<!-- This site is optimized with the Yoast WordPress SEO plugin v1.0.3 - http;//yoast.com/wordpress/seo/ -->
pesan dari plugin.
Dan sebelum Anda meneriaki saya tentang bagaimana ini mungkin tidak etis, penulis mengatakan tidak apa-apa untuk dilakukan di sini: http://wordpress.org/support/topic/plugin-wordpress-seo-by-yoast-how-to-remove-dangerous -inserted-yoast-message-in-page-header? balasan = 29 # post-2503475
Saya telah menemukan kelas yang menambahkan komentar di sini: http://plugins.svn.wordpress.org/wordpress-seo/tags/1.2.8.7/frontend/class-frontend.php
Pada dasarnya WPSEO_Frontend
kelas memiliki fungsi bernama debug_marker
yang kemudian dipanggil oleh fungsi bernama head
yang kemudian ditambahkan ke wp_head
dalam__Construct
Saya baru di kelas tetapi saya menemukan cara untuk benar-benar menghapus kepala dengan melakukan
global $wpseo_front;
remove_action( 'wp_head', array($wpseo_front,'head'), 1, 1 );
tapi saya hanya ingin menghapus debug_marker
bagian dari itu. Saya mencoba ini tetapi itu tidak berhasil
remove_action( 'wp_head', array($wpseo_front,'head','debug_marker'), 1, 1 );
Seperti yang saya katakan saya baru di kelas sehingga bantuan apa pun akan bagus.
sumber
Terima kasih atas semua bantuan Anda, saya akhirnya menyelesaikannya. Saya membuat functions.php untuk tema anak saya, lalu menambahkan
sumber
remove_class_action
untuk menghapus action / filter gist.github.com/tripflex/c6518efc1753cf2392559866b4bd1a53Saya tidak berpikir Anda akan dapat melakukannya dengan menggunakan
remove_action
. Argumen fungsi diremove_action
tidak akan membantu Anda karenadebug_marker()
fungsi itu bukan fungsi yang digunakan dalamadd_action()
panggilan.Yoast mungkin memiliki sesuatu seperti
add_action( "wp_head", "head" )
dalam kodenya. Jadi Anda dapat menghapus fungsi "head", tetapidebug_marker
tidak secara eksplisit ditambahkan sebagai tindakan.Anda bisa
WPSEO_Frontend
kelas dan kelebihandebug_marker
fungsi untuk mengembalikan "". TBH, saya tidak yakin bagaimana ini akan bekerja dalam hal WP memuat plugin, tetapi bisa jadi layak diselidiki.sumber
Menemukan utas ini setelah mengerjakan solusi yang sama dengan yang disebutkan oleh
Steve Claridge
, yaitu:Perpanjang
WPSEO_Frontend
kelas dan kelebihandebug_marker
fungsi untuk mengembalikan ""Saya merinci langkah-langkah di bawah ini, meskipun saya terjebak pada langkah terakhir.
Buat plugin penyesuaian
Seperti yang disebutkan dalam artikel ini dari WP Tavern , "cara termudah untuk mencapai ini adalah dengan membuat plugin fungsionalitas yang akan berjalan di sampingnya".
Jadi saya melanjutkan untuk membuat plugin pertama saya mengikuti artikel ini dari ElegantTheme .
Perpanjang kelas yang relevan.
Saat itulah segalanya menjadi rumit. Saya menambahkan berikut ini tetapi fungsi utama saya masih tidak dipicu karena beberapa alasan.
sumber
Saya menemukan bahwa Anda dapat menghapus tindakan debug_marker di functions.php. Plugin Yoast dieksekusi dalam aksi wp_head. Saya hanya mengambil kait tindakan yang mengikuti langsung setelah itu, yaitu wp_enqueue_scripts dan di sana saya mengaitkan fungsi yang menghapus output debug_marker. Untuk ini, Anda juga harus melewati objek plugin. Juga nomor prioritas harus sama dengan yang ditetapkan dari dalam plugin.
Namun ini tidak menghapus
sebagian, karena itu bergema di kepala fungsi pembungkus penting plugin . Anda bisa mencoba menimpanya.
sumber
Untuk menambahkan jawaban Ahmad, Anda bisa menghapus semua komentar html dengan jumlah kode yang sama, karena Yoast bukan satu-satunya plugin yang melakukan itu.
sumber
Saya telah menemukan potongan yang menghapus semua komentar Yoast WordPress SEO dari ujung depan. Ini juga memodifikasi pendekatan buffering output yang menggunakan jawaban @ bryan-willis dan @ ahmad-m.
Cukup letakkan cuplikan di tema Anda
functions.php
atau file plugin / tema khusus PHP.Saya akan meninggalkannya di sini sebagai referensi - kredit diberikan kepada pembuat cuplikan
sumber
Ini adalah versi modifikasi dari @ ahmad-m Answer , dengan menerapkan filter Anda dapat membuat beberapa perubahan konten ke html header.
sumber
Menemukan solusi serupa
functions.php
yang tidak menggunakan prioritas hardcoded2
tetapi secara dinamis membaca dan menggunakan prioritas dari Yoastadd_action()
.sumber
Lihat fungsi flush_cache di wordpress-seo / frontend / class-frontend.php
Temukan baris kode ini
Ubah dengan
Terima kasih kepada pembuat plugin yang luar biasa ini.
sumber