Rumah > Artikel > pembangunan bahagian belakang > Pengenalan kepada Penapis WordPress: Gambaran Keseluruhan Komprehensif 50 Penapis
WordPress ialah platform yang menakjubkan dan sistem pengurusan kandungan paling popular di dunia. Sebab tajuk ini adalah kerana kebolehskalaannya. Dalam siri ini, kita akan belajar tentang penapis - salah satu cara terbaik untuk menskalakan WordPress.
Asas ciri ini ialah Hooks - Penapis dan Tindakan untuk WordPress. Tanpa mereka, kami tidak akan dapat memanfaatkan skalabiliti sebenar WordPress.
Dalam siri ini, kita akan belajar tentang penapis, salah satu cara terbaik untuk menskalakan WordPress. Ini akan menjadi siri tujuh bahagian yang memfokuskan pada:
Terdapat ratusan penapis WordPress dalam teras, 50 contoh ini hanya sebahagian daripadanya (kira-kira 10%), jadi jika anda menyukai siri ini dan mencadangkan contoh baharu untuk penapis baharu, mungkin terdapat lampiran
Apa pun, sudah tiba masanya untuk memperkenalkan penapis WordPress. Mari mulakan!
Dalam Codex, penapis ditakrifkan seperti berikut:
Penapis ialah fungsi yang WordPress menghantar data pada titik tertentu semasa pelaksanaan, sebelum mengambil tindakan tertentu pada data. Penapis terletak di antara pangkalan data dan pelayar, dan antara pelayar dan pangkalan data kebanyakan input dan output dalam WordPress akan melalui sekurang-kurangnya satu penapis. WordPress melakukan beberapa penapisan secara lalai, dan pemalam anda boleh menambah pemalam anda sendiri.
Jadi, pada asasnya, penapis ialah fungsi yang memproses data tapak web sebelum WordPress mengeluarkannya. Penapis ialah satu daripada dua cangkuk dalam WordPress – satu lagi dipanggil Tindakan, yang merupakan subjek siri artikel lain.
Walaupun ia kelihatan seperti topik yang rumit, penapis (dan tindakan) sangat mudah difahami. Saya juga terintimidasi apabila saya mula-mula bertemu dengan mereka, tetapi selepas melihat betapa mudahnya ia, saya dapat mempelajari tentang ratusan penapis dan operasi hanya dengan menyemak Codex atau menggali kod teras.
Terdapat ratusan penapis yang pasti anda perlu tahu. Tetapi pertama, anda perlu tahu cara menggunakannya.
Seperti yang saya katakan, menggunakan penapis WordPress adalah sangat mudah. Hanya untuk memahami beberapa ciri asas, anda perlu memahami perkara yang dilakukan oleh setiap penapis. (Sejujurnya, bahagian yang paling sukar ialah mempelajari semua penapis, tetapi seperti yang anda bayangkan, anda tidak boleh mempelajari setiap penapis sekaligus - anda perlu mempelajarinya apabila anda memerlukannya.)
Dalam bahagian ini, kita akan membincangkan empat perkara:
Untuk memproses data yang dihantar daripada penapis, anda perlu mencipta fungsi yang mentakrifkan cara ia akan memproses data dan menyambungkannya ke penapis.
Andaikan kami sedang membina pemalam untuk membuang vokal dalam tajuk siaran. Daripada mengatakan "alih keluar vokal dalam tajuk siaran saya", anda katakan "cangkuk fungsi ini (alih keluar vokal) pada penapis tajuk siaran saya".
Adakah ia rumit? Tidak juga. Dalam contoh berikut, kami akan mengodkan fungsi yang mengalih keluar vokal daripada apa sahaja:
<?php function remove_the_vowels( $title ) { $title = preg_replace( '/[aeiou]/i', '', $title ); return $title; } ?>
Fungsi ini mengambil rentetan $title
, mengeluarkan vokal dan mengembalikannya. Mudah, kan? Sekarang, mari kita bawa ia ke peringkat seterusnya dan sambungkannya ke penapis: $title
字符串,删除元音并将其返回。很容易,对吧?现在,让我们将其提升到一个新的水平并将其连接到过滤器:
<?php function remove_the_vowels( $title ) { $title = preg_replace( '/[aeiou]/i', '', $title ); return $title; } add_filter( 'the_title', 'remove_the_vowels' ); ?>
注意到新功能了吗?我们快速看一下add_filter()
:
<?php add_filter( $tag, $function_to_add, $priority, $accepted_args ); ?>
10
:如果设置较低,则该函数会较早运行;如果设置较高,则该函数会较晚运行。1
。我们也可以删除附加到过滤器的函数。为此,我们使用一个名为 remove_filter()
的简单函数。让我们看看它是如何工作的:
<?php remove_filter( $tag, $function_to_remove, $priority ); ?>
参数与add_filter()
<?php apply_filters( $tag, $value, $var1, $var2 /* ...and so on */ ); ?>Perhatikan ciri baharu? Mari lihat sebentar
add_filter()
: 🎜
<?php function peter_griffin_quote() { $quote = "The bird is the word."; return $quote; } ?>🎜 🎜 🎜$tag🎜 (diperlukan) - Nama penapis. 🎜 🎜 🎜$function_to_add🎜 (diperlukan) - Nama fungsi untuk disambungkan ke dalam penapis. 🎜 🎜 🎜$priority🎜 (pilihan) - Integer yang menyatakan masa untuk melaksanakan fungsi kami. Nilai lalai ialah
10
: jika tetapan lebih rendah, fungsi akan berjalan lebih awal jika tetapan lebih tinggi, fungsi akan dijalankan kemudian. 🎜
🎜
🎜$accepted_args🎜 (pilihan) - Integer yang digunakan untuk menetapkan bilangan argumen yang diterima oleh penapis. Nilai lalai ialah 1
. 🎜
🎜
🎜Alih keluar penapis🎜
🎜Kami juga boleh mengalih keluar fungsi yang dipasang pada penapis. Untuk melakukan ini, kami menggunakan fungsi mudah yang dipanggil remove_filter()
. Jom lihat cara ia berfungsi: 🎜
<?php function peter_griffin_quote() { $quote = "The bird is the word."; return apply_filters( 'peter_griffin_quote', $quote ); } ?>🎜Parameter hampir sama dengan
add_filter()
: 🎜
还有另一个名为 remove_all_filters()
的函数,它只有两个参数($tag
和 $priority
),您可以在其中设置过滤器的名称并设置优先级。顾名思义,它会删除所有与过滤器挂钩的函数。
想知道这些过滤器是如何创建的?有一个名为 apply_filters()
的特殊函数,它围绕核心代码创建数百个过滤器。当然,它可以在核心之外使用,这意味着我们也可以在插件和主题内创建过滤器。
让我们看看它是如何工作的:
<?php apply_filters( $tag, $value, $var1, $var2 /* ...and so on */ ); ?>
add_filter()
挂钩的过滤器函数修改的值。让我们考虑一个例子:假设您编写了一个仅返回 Peter Griffin 的名言的函数:
<?php function peter_griffin_quote() { $quote = "The bird is the word."; return $quote; } ?>如果您想让人们过滤此引用(并保留您的插件代码),您需要使用
apply_filters()
函数,如下所示:
<?php function peter_griffin_quote() { $quote = "The bird is the word."; return apply_filters( 'peter_griffin_quote', $quote ); } ?>这样,另一个开发人员使用您的插件就可以像这样处理您的函数数据:
<?php function change_the_quote( $quote ) { $quote = str_replace( 'bird', 'nerd', $quote ); return $quote; } add_filter( 'peter_griffin_quote', 'change_the_quote' ); ?>
现在,每次运行 peter_griffin_quote()
函数时,Peter 的引用都会略有更改,而无需开发人员编辑您的插件文件。小菜一碟!
如果您需要有关此主题的更多信息,您应该查看 Pippin Williamson 关于 Tuts+ Code 的精彩教程:“使用操作和过滤器编写可扩展插件”。在本教程中,您可以学习如何为您的插件或主题创建过滤器和操作。
您处理得越多,使用滤镜的乐趣就越多。它们有数百种,学习每一种都可以让您更接近成为一名 WordPress 大师。在本系列的下一部分中,我们将了解 10 个 WordPress 过滤器:
login_errors
comment_post_redirect
allowed_redirect_hosts
body_class
locale
sanitize_user
the_content
the_password_form
the_terms
wp_mail_from
我对这个系列感到非常兴奋,希望您能像我一样喜欢它。如果您认为您可以通过建议更多过滤器并要求更多示例来帮助我完成教程,请随时告诉我并通过下面的评论分享您的想法。
如果您喜欢本文中所读的内容,请不要忘记分享!
下一个教程见!
Atas ialah kandungan terperinci Pengenalan kepada Penapis WordPress: Gambaran Keseluruhan Komprehensif 50 Penapis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!