>  기사  >  백엔드 개발  >  WordPress 필터 소개: 50가지 필터에 대한 종합적인 개요

WordPress 필터 소개: 50가지 필터에 대한 종합적인 개요

WBOY
WBOY원래의
2023-09-02 11:33:081505검색

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

WordPress는 놀라운 플랫폼이자 세계에서 가장 인기 있는 콘텐츠 관리 시스템입니다. 이 제목을 붙인 이유는 확장성 때문입니다. 이 시리즈에서는 WordPress를 확장하는 가장 좋은 방법 중 하나인 필터에 대해 알아봅니다.

이 기능의 기본은 Hooks - WordPress용 필터 및 작업입니다. 이것이 없었다면 우리는 WordPress의 진정한 확장성을 활용할 수 없었을 것입니다.

이 시리즈에서는 WordPress를 확장하는 가장 좋은 방법 중 하나인 필터에 대해 알아봅니다. 이 시리즈는 다음 사항에 초점을 맞춘 7부작 시리즈입니다.

  • 워드프레스 필터 정의 및 사용 방법 소개(지금 읽고 있는 기사),
  • 총 50개의 WordPress 필터(기사당 10개)를 예시와 함께 다루는 5개의 기사
  • 필터 설명과 50가지 예를 설명하는 "요약" 기사도 있습니다.

핵심에는 수백 개의 WordPress 필터가 있으며, 이 50개의 예제는 그 중 일부(약 10%)일 뿐이므로 시리즈가 마음에 들고 새 필터에 대한 새로운 예제를 제안한다면 부록이 있을 수 있습니다.

어쨌든 이제 워드프레스 필터를 소개할 차례입니다. 시작하자!

WordPress 필터란 무엇인가요?

Codex에서는 필터를 다음과 같이 정의합니다.

필터는 데이터에 특정 작업을 수행하기 전에 WordPress가 실행 중 특정 지점에서 데이터를 전달하는 기능입니다. 필터는 데이터베이스와 브라우저 사이, 그리고 브라우저와 데이터베이스 사이에 위치하며 WordPress의 대부분의 입력과 출력은 최소한 하나의 필터를 통과합니다. WordPress에서는 기본적으로 일부 필터링을 수행하며 플러그인에서 직접 필터링을 추가할 수 있습니다.
따라서 필터는 기본적으로 WordPress에서 웹사이트 데이터를 출력하기 전에 웹사이트 데이터를

처리 하는 기능입니다. Filters는 WordPress의 두 가지 후크 중 하나입니다. 다른 하나는 Actions이며, 이는 또 다른 기사 시리즈의 주제입니다.

복잡한 주제처럼 보이지만 필터(및 동작)는 정말 이해하기 쉽습니다. 저 역시 처음 접했을 때는 겁이 났지만, 얼마나 간단한지 보고 나니 코덱스를 확인하거나 핵심 코드를 파헤치는 것만으로도 수백 가지의 필터와 동작을 익힐 수 있었습니다.

꼭 알아야 할 수백 가지 필터가 있습니다. 하지만 먼저, 그것들을 사용하는 방법을 알아야 합니다.

워드프레스에서 필터 사용하기

내가 말했듯이 WordPress 필터를 사용하는 것은 매우 쉽습니다. 몇 가지 기본 기능을 이해하려면 각 필터의 ​​기능을 이해해야 합니다. (솔직히 가장 어려운 부분은 모든 필터를 배우는 것이지만, 상상할 수 있듯이 모든 필터를 한 번에 배울 수는 없습니다. 필요할 때 배워야 합니다.)

이 섹션에서는 다음 네 가지 사항에 대해 논의합니다.

    필터 기능 만들기,
  1. 필터에 걸어두세요,
  2. 필터에서 기능 제거,
  3. 나만의 필터를 만들어보세요.
필터 함수를 생성하고 필터에 연결

필터에서 전달된 데이터를 처리하려면 데이터를 처리하고 필터에 연결하는 방법을 정의하는 함수를 만들어야 합니다.

글 제목에서 모음을 제거하는 플러그인을 구축한다고 가정해 보겠습니다. "내 게시물 제목에서 모음을 제거"라고 말하는 대신 "내 게시물 제목의 필터에 이 기능(모음 제거)을 연결합니다"라고 말합니다.

복잡한가요? 설마. 다음 예에서는

anything에서 모음을 제거하는 함수를 코딩합니다. 으아악

이 함수는

문자열을 가져와 모음을 제거한 후 반환합니다. 쉽지요? 이제 다음 단계로 넘어가서 필터에 연결해 보겠습니다. $title 으아악

새로운 기능을 확인하셨나요? 간단히 살펴보겠습니다

: add_filter() 으아악

  • $tag (필수) - 필터 이름입니다.
  • $function_to_add (필수) - 필터에 연결할 함수의 이름입니다.
  • $priority (선택 사항) - 함수 실행 시기를 지정하는 정수입니다. 기본값은 입니다. 설정이 낮으면 기능이 더 일찍 실행되고, 설정이 높으면 기능이 나중에 실행됩니다. 10
  • $accepted_args (선택 사항) - 필터에서 허용되는 인수 수를 설정하는 데 사용되는 정수입니다. 기본값은 입니다. 1
필터 제거

필터에 부착된 기능을 제거할 수도 있습니다. 이를 위해

라는 간단한 함수를 사용합니다. 어떻게 작동하는지 살펴보겠습니다: remove_filter() 으아악

매개변수는

와 거의 동일합니다. add_filter()

  • $tag(必需)- 过滤器的名称。
  • $function_to_remove(必需)- 要删除的函数的名称。
  • $priority(可选)- 函数的优先级(首次挂钩函数时定义)。

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

创建您自己的过滤器

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

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

<?php

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

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

让我们考虑一个例子:假设您编写了一个仅返回 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 过滤器:

  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

我对这个系列感到非常兴奋,希望您能像我一样喜欢它。如果您认为您可以通过建议更多过滤器并要求更多示例来帮助我完成教程,请随时告诉我并通过下面的评论分享您的想法。

如果您喜欢本文中所读的内容,请不要忘记分享!

下一个教程见!

위 내용은 WordPress 필터 소개: 50가지 필터에 대한 종합적인 개요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.