>  기사  >  백엔드 개발  >  WordPress에서 후크 사용 분석

WordPress에서 후크 사용 분석

*文
*文원래의
2017-12-27 17:59:482239검색

이 글에서는 WordPress의 구문 분석 기능 중 Hook의 기능과 기본 사용법을 주로 소개합니다. Hook은 WordPress에서 함수를 호출하는 중요한 사용법이자 플러그인 개발의 기초이기도 합니다. 그것이 모두에게 도움이 되기를 바랍니다.

워드프레스의 플러그인 메커니즘은 실제로 이 후크입니다. 중국어 이름은 후크로 번역되며, 이를 통해 워드프레스 코어 실행에 참여할 수 있습니다. 아래에서 자세히 알아보세요.
Hook 분류

Hook는 두 가지 유형으로 나뉘는데 하나는 액션, 다른 하나는 필터입니다. 이 두 후크의 구현 원리는 기본적으로 동일합니다. 나중에 언급하겠지만 사용법의 차이점은 필터에는 반환 값이 있지만 작업에는 없다는 점입니다.

액션의 아이디어는 이메일 보내기 등과 같은 상황이나 특별한 위치에서 일부 기능을 수행할 수 있도록 하는 것입니다. 필터를 사용하면 WordPress 코어가 사용해야 하는 값을 수정할 수 있습니다. 이 값을 사용합니다. 함수의 반환 값 등과 같은 작업을 수행합니다.

Action Hook

wp_head는 테마 개발 중에 wp_head() 함수를 head 태그에 추가하는 매우 일반적으로 사용되는 액션 후크입니다.

플러그인 개발자가 head 태그에 문장을 추가하고 싶다면 wp_head 후크를 사용할 수 있습니다. 다음은 간단한 예입니다.


//在 head 标签添加一些内容
function Bing_add_head_tag(){
  echo '添加内容';
}
add_action( 'wp_head', 'Bing_add_head_tag' );


코드 추가 후 프론트엔드 웹페이지의 소스코드를 확인하시면, head 태그에 저희가 추가한 내용을 보실 수 있습니다.

20151222154540066.png (437×83)

위는 문장만 출력하는 간단한 예시입니다. 이 후크를 사용하면 404 페이지가 나타날 때 관리자에게 이메일을 보내는 플러그인을 만들 수도 있습니다. 아래에 간단히 작성했습니다.


//遇到 404 页面给管理员发送邮件
function Bing_404_page_mail(){
  if( !is_404() ) return;//如果不是 404 页面就退出函数
  $to = get_option( 'admin_email' );//获取管理员地址
  $subject = '遇到 404 页面啦!';//邮件标题
  $message = '404 页面的地址:http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];//邮件内容
  wp_mail( $to, $subject, $message );//发送邮件
}
add_action( 'wp_head', 'Bing_404_page_mail' );


필터 후크

개인 경험에 따르면 필터 후크는 특히 PHP에 익숙하지 않은 사람들에게는 이해하기 어려울 수 있습니다.

필터 후크를 사용하면 항목의 값을 변경할 수 있습니다. 필터 콜백 함수는 현재 값인 매개변수를 허용합니다. 기사 콘텐츠를 호출하는 데 사용되는 the_content() 함수를 기억하세요. 이 함수는 the_content 필터를 제공합니다.

the_content 후크에 함수를 추가하세요. 이 함수는 현재 값인 매개변수를 받아야 합니다.


//文章内容全部链接新窗口打开
function Bing_autoblank( $content ){//$content 变量就是文章内容,因为其它过滤器也要过滤,所以这个内容可能是经过其它函数过滤的
  $content = str_replace( &#39;<a&#39;, &#39;<a target="_blank"&#39;, $content );//添加 target="_blank"
  return $content;//必须要把过滤后的内容返回回去,否则值就丢了
}
add_filter( &#39;the_content&#39;, &#39;Bing_autoblank&#39; );


Hook 원리

실제로 add_action() 및 add_filter()를 호출할 때 $wp_filter 전역 변수에 배열 요소만 추가하고 액션 및 필터링도 언급합니다. 공용 전역 변수, 즉 필터와 작업은 동일한 이름을 가질 수 없습니다.

do_action()이 호출되면 $wp_filter 전역 변수에서 이 작업에 추가된 함수를 검색하여 루프에서 실행합니다.

apply_filters()는 do_action()보다 한 단계 더 있는데, 호출될 때마다 이 함수의 반환 값을 받고, 최종적으로 여러 번 필터링된 값을 반환하여 사용하는 것입니다.

현재 후크 목록 가져오기
WordPress 액션과 필터는 플러그인 메커니즘의 핵심 부분으로, 특정 위치에서 수행해야 하는 액션을 적극적으로 추가할 수 있도록 해줍니다. 일반적으로 add_action() 및 add_filter() 함수를 사용합니다. 기능을 탑재합니다.

이러한 Hooks는 $wp_filter 전역 변수에 저장되므로 Hook 목록을 얻으려면 $wp_filter 전역 변수를 직접 가져올 수 있습니다.


<pre class="brush:php;toolbar:false"><?php var_dump( $GLOBALS[&#39;wp_filter&#39;] ); ?>


위 코드는 후크 목록을 인쇄합니다. ㅋㅋㅋ ord Press에서 생성 및 생성하는 데 사용됩니다. 측면 가져오기 PHP 함수 예제 설명

위 내용은 WordPress에서 후크 사용 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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