2010-06-27 4 views
1

저는 Wordpress 플러그인 작성시 새로운 것이므로 처음에는 문자열을 수정하는 간단한 플러그인을 만들려고합니다. 나는 전에 스크립트를 작성하고 스크립트가 작동한다는 것을 알고 있습니다. 하지만 Wordpress에 사용하려면 게시물 제목에 적용하고 싶습니다. 문자열을 "get_the_title()"함수로 대체하면 흰색 화면을 반환합니다. 나는 아래로 그것을 벗겼다 :Wordpress 함수가 플러그인에서 흰 화면을 반환합니다.

function display_title() { 
echo get_the_title(); 
} 

add_action('the_title', 'display_title'); 

이것은 아직도 백색 스크린을 돌려 보낸다. 그래서 "get_the_title()"함수 여야합니다. 아무도 왜 이것이 작동하지 않는지 내게 설명 할 수 있습니까, 그리고 어쩌면 다른 방법으로 제목 문자열을 검색 할 수 있습니까?

+1

오류보고 기능이 켜져 있습니까? PHP에서 의미있는 오류 메시지를 받아야합니다. –

답변

4

요한은 함수 에 관계없이 당신이 그것을 등록 여부라고 할 수 되더라도 the_title는, 필터보다는 액션 걸이입니다 말했듯 add_filter 또는 add_action을 사용하십시오.

문제는 필터를 사용하면 함수가 값 (일반적으로 전달 된 인수의 수정 된 버전)을 반환해야한다는 것입니다. 따라서이 필터를 사용하여 제목을 수정하려면 다음과 같이하십시오.

function display_title($title) { 
    $title .= '!'; // Do something with the title string here 
    return $title; 
} 

add_filter('the_title', 'display_title'); 
+0

감사합니다. 훌륭하게 작동했습니다. 나는 $ title이라는 변수를 사용할 수 있는지 알지 못했고 각 문자열을 검색 할 것입니다. 코덱스 어딘가에이 목록이 있습니까? –

+2

함수는 제목 문자열을 검색하지 않고 인수로 전달합니다. 기본적으로 Wordpress 루프에서 the_title()을 호출하면 제목이 데이터베이스에서 검색되고 모든 함수가 the_title 필터에 연결되어 인쇄됩니다. 불행히도 대부분의 필터는 코덱스에 문서화되어 있지 않으므로 함수가 전달 될 인수를 찾는 가장 좋은 방법은 Wordpress 소스 코드에서'apply_filters ('filter_name')을 검색하는 것입니다.이 경우 이어지는 인수가 전달됩니다 함수에. –

+1

'wp-includes/default-filters.php'를 보면'the_title'에 대한 대부분의 필터가 있어야합니다. –

1

글쎄, 한 가지로 'the_title'은 액션이 아니며 필터입니다. 그래서 그 기능은 결코 발사되지 않습니다. 그 기능의 잘못이 아니라 다른 것일 수도 있습니다. 플러그인 API를 읽고 액션과 필터의 차이점을 배우는 것이 좋습니다. 필터는 특히 간단한 방법으로 당신이 원하는 것을 할 수 있도록 설계되었습니다 :

http://codex.wordpress.org/Plugin_API/

+0

감사합니다. 지금은 차이가 있습니다. 그러나, 그냥 "get_the_title()"함수 대신 문자열을 입력하면 문제없이 작동하는 것 같습니다. 페이지를로드하고 제목을 해당 문자열로 바꿉니다. –

관련 문제