2012-12-13 2 views
1

저는 며칠 동안 wordpress를 개발했습니다. 그러나 add_action, add_filter, user_can과 같은 방법을 사용하지 못했습니다. 어떤 기능을 사용하는지 알지 못합니다. 더 여전히, 나는 오늘 내가 사용자 목록 테이블 관리자 패널에 열을 추가하려는 매개 변수를 모른다, 나는 fortunatelly 여기add_action, add_filter, user_can은 WordPress에 포함되어 있습니다

add_filter('manage_users_columns', 'add_user_column'); 
function add_user_column($columns){ 
    $columns['available_stickers'] = __('Stickers Available', 'available_stickers'); 
    return $columns; 
} 
add_filter('manage_users_custom_column', 'add_user_column_value', 10, 3); 
function add_user_column_value($value, $column_name, $user_id){ 
    if ('available_sticker' == $column_name) 
      $value = get_user_meta($user_id,"available_stickers",true); 
    return $value; 
} 

심지어 내가 만든 생각의 코드는, 튜토리얼을 발견,하지만 난 매개 변수 manage_users_columns이 어디서 제공되는지 또는 왜 manage_users_columns을 사용해야 하나 다른 코드가 아닌지 모르겠습니까? 어리둥절한 도 있으며 apply_filter 등의 코드와 일치했습니다. 일부는 미로에서 나를 도울 수 있습니다.

+0

모두 Wordpress Codex에 있습니다. http://codex.wordpress.org/Developer_Documentation –

+0

Eclipse와 같은 IDE를 설치하면 쉽게 함수 정의와 설명서를 찾을 수 있습니다. –

+0

스티븐리는 후크의 개념에 고심하고 있습니다. 해당 함수의 정의를 찾으려고합니다. 적어도 – barakadam

답변

2

워드 프레스는 아름답게가하는 행동의 대부분은 직접 실행되지 않기 때문에 설계되었지만 행동필터 무엇이라고하는 것입니다. 이것은 개발자에게 개발자에게 후크의 가능성을 제공합니다. 후킹은 WP의 논리의 중간에서 자신의 논리를 매우 깔끔하게 정리할 수 있다는 것을 의미합니다. 단, 해당 후크가 사용되는 곳에서 일을 수행하기를 원한다는 것을 선언해야합니다. 더 정확하게 :

작업

그래서, 게시물이 저장 예를 들어, 워드 프레스는 게시물을 저장하지 않습니다, 그것은이 줄을 실행하여 작업을 수행합니다

do_action('save_post', $post_ID, $post); 

이것은이다 이름을에 부여하는 방법입니다 (save_post). 즉, 두 가지를 의미합니다 :

1) 다른 곳에서는 같은 코드 줄을 사용하여 똑같은 동작을 실행할 수 있습니다.

2) 중에 실행할 논리를 추가 할 수 있습니다. 방법? 다만하여이 같은 조치에 사용자 정의 함수 "추가"

add_action('save_post', 'name_of_the_function_you_want_to_execute_when_post_is_saved'); 

그래서 'save_post'는 후크의 이름입니다 것은, add_action 당신이 고리의 행동에 자신의 기능을 추가 할 수있는 가능성을 제공하고 do_action은 실제로 조치를 실행합니다.

필터

필터 대신 명령 실행, 그들은 값, 객체, 문자열이나 텍스트를 (을 "필터링"할 때)을 치료하는 데 사용되는 경우에 사용되는, 행동과 유사하다 . 다시 말하지만, WordPress는 핵심 코드에 액세스하는 것 이상의 다른 가능성이없는 방식으로 객체와 문자열을 조작하는 대신 apply_filters()이라는 특수 작업으로 많은 "필터링"작업을 교묘하게 수행합니다. 이렇게하면 액션처럼 실제로 자신의 필터를 이미 적용된 필터에 추가 할 수 있습니다. 게시물의 내용을 보여주는 때, WP 실행할 것입니다 : 후크의

apply_filters('the_content', $post->post_content); 

이름은 the_content입니다.당신이 사용하는 경우 :

add_filter('the_content', 'your_function_to_execute_to_further_filter_content'); 

당신은 매개 변수로 내용을 당신이 그것을에 적용 할 어떤 치료 이후의 필터링 된 버전을 반환 할 수 있습니다 your_function_to_execute_to_further_filter_content()라는 기능을 가질 수있다. 그런 다음이 처리는 WP에서 모든 곳에서 적용됩니다. the_content은 WP 기본 항목, 동일한 후크에 추가 된 플러그인 필터 및 사용자 고유의 필터를 포함하여 이러한 필터를 실행하는 데 사용됩니다.

여기에서는 WP 후크 코드를 망치지 않고 WP 조작을 방해 할 수 있도록이 후크를 사용하고 있습니다. 실행할 추가 작업을 선언하면 WP에서이를 인식하게됩니다. 그러면 WP는 해당 후크 동작 또는 필터가 실행될 때마다 기능을 실행하는 예의를 갖게됩니다.

+0

+1 그레이트 라이트 업에 답하려고했습니다! 나는 코덱스에 대한 몇 가지 링크를 놓친다;) – brasofilo

+0

당신의 답을위한 것 이상으로, 나는 그것을 가지고있다. 그러나 나는 아직도 당혹 스럽다 : 당신은 나에게 예를 들었다. do_action ('save_post', $ post_ID, $ post); 내가 젠드 스튜디오 그냥 save_post 검색 사용 save_post의 실제 기능이 있는지 여부를 알고 싶어하지만,이 경우, 그냥 save_post.well의 응용 프로그램이 있습니다, 그것은 함수 나타나지 않는 나를 안타 함수가 아닌, 내가 어떻게이 게시물을 저장하는 작업 않는 연민 정말이야 (나는 내가 save_post 그냥 ID 또는 이름이 차 개발을위한 개발자를 위해 말을 결론을 도출, 당신의 설명을 따라) ?? 또한 사전에 고맙습니다! – stevenlee

관련 문제