Pengenalan kepada Penapis WordPress: Gambaran Keseluruhan Komprehensif 50 Penapis

WBOY
Lepaskan: 2023-09-02 11:34:01
asal
1483 orang telah melayarinya

WordPress 过滤器简介:50 个过滤器的全面概述

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:

  • Takrifan penapis WordPress dan pengenalan cara menggunakannya (artikel yang anda baca sekarang),
  • Lima artikel yang merangkumi sejumlah 50 penapis WordPress (10 setiap artikel) dengan contoh
  • Terdapat juga artikel "Ringkasan" yang menggariskan penerangan penapis dan 50 contoh.

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!

Apakah penapis WordPress?

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.

Menggunakan penapis dalam WordPress

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:

  1. Buat fungsi penapis,
  2. Gantung pada penapis,
  3. Alih keluar fungsi daripada penapis,
  4. Buat penapis kami sendiri.

Buat fungsi penapis dan sangkutkannya ke penapis

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;
}

?>
Salin selepas log masuk

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' );

?>
Salin selepas log masuk

注意到新功能了吗?我们快速看一下add_filter()

<?php

add_filter( $tag, $function_to_add, $priority, $accepted_args );

?>
Salin selepas log masuk
  • $tag(必需)- 过滤器的名称。
  • $function_to_add(必需)- 挂钩到过滤器的函数的名称。
  • $priority (可选) - 一个整数,用于指定何时执行我们的函数。默认值为 10:如果设置较低,则该函数会较早运行;如果设置较高,则该函数会较晚运行。
  • $accepted_args (可选)- 用于设置过滤器接受的参数数量的整数。默认值为 1

删除过滤器

我们也可以删除附加到过滤器的函数。为此,我们使用一个名为 remove_filter() 的简单函数。让我们看看它是如何工作的:

<?php

remove_filter( $tag, $function_to_remove, $priority );

?>
Salin selepas log masuk

参数与add_filter()

<?php

apply_filters( $tag, $value, $var1, $var2 /* ...and so on */ );

?>
Salin selepas log masuk
Salin selepas log masuk

Perhatikan ciri baharu? Mari lihat sebentar add_filter(): 🎜
<?php

function peter_griffin_quote() {
	$quote = "The bird is the word.";
	return $quote;
}

?>
Salin selepas log masuk
Salin selepas log masuk
🎜 🎜 🎜$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 );
}

?>
Salin selepas log masuk
Salin selepas log masuk
🎜Parameter hampir sama dengan add_filter(): 🎜
  • $tag(必需)- 过滤器的名称。
  • $function_to_remove(必需)- 要删除的函数的名称。
  • $priority(可选)- 函数的优先级(首次挂钩函数时定义)。

还有另一个名为 remove_all_filters() 的函数,它只有两个参数($tag$priority),您可以在其中设置过滤器的名称并设置优先级。顾名思义,它会删除所有与过滤器挂钩的函数。

创建您自己的过滤器

想知道这些过滤器是如何创建的?有一个名为 apply_filters() 的特殊函数,它围绕核心代码创建数百个过滤器。当然,它可以在核心之外使用,这意味着我们也可以在插件和主题内创建过滤器。

让我们看看它是如何工作的:

<?php

apply_filters( $tag, $value, $var1, $var2 /* ...and so on */ );

?>
Salin selepas log masuk
Salin selepas log masuk
  • $tag(必填)- 您的过滤器挂钩的名称。
  • $value (必填) - 通过 add_filter() 挂钩的过滤器函数修改的值。
  • $var1、$var2 等(可选)- 过滤器的参数(任意数量)。过滤器函数可以使用这些参数,但它们不能由函数返回。

让我们考虑一个例子:假设您编写了一个仅返回 Peter Griffin 的名言的函数:

<?php

function peter_griffin_quote() {
	$quote = "The bird is the word.";
	return $quote;
}

?>
Salin selepas log masuk
Salin selepas log masuk
如果您想让人们过滤此引用(并保留您的插件代码),您需要使用 apply_filters() 函数,如下所示:
<?php

function peter_griffin_quote() {
	$quote = "The bird is the word.";
	return apply_filters( 'peter_griffin_quote', $quote );
}

?>
Salin selepas log masuk
Salin selepas log masuk
这样,另一个开发人员使用您的插件就可以像这样处理您的函数数据:
<?php

function change_the_quote( $quote ) {
	$quote = str_replace( 'bird', 'nerd', $quote );
	return $quote;
}

add_filter( 'peter_griffin_quote', 'change_the_quote' );

?>
Salin selepas log masuk

现在,每次运行 peter_griffin_quote() 函数时,Peter 的引用都会略有更改,而无需开发人员编辑您的插件文件。小菜一碟!

如果您需要有关此主题的更多信息,您应该查看 Pippin Williamson 关于 Tuts+ Code 的精彩教程:“使用操作和过滤器编写可扩展插件”。在本教程中,您可以学习如何为您的插件或主题创建过滤器和操作。

结论

您处理得越多,使用滤镜的乐趣就越多。它们有数百种,学习每一种都可以让您更接近成为一名 WordPress 大师。在本系列的下一部分中,我们将了解 10 个 WordPress 过滤器:

  1. login_errors
  2. comment_post_redirect
  3. allowed_redirect_hosts
  4. body_class
  5. locale
  6. sanitize_user
  7. the_content
  8. the_password_form
  9. the_terms
  10. 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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!