2012-12-13 40 views
1

我已经开发了WordPress的几天,但我发现没有办法对这些像:ADD_ACTION,的add_filter,user_can,我不知道什么是他们参考,以功能。 更糟糕的是,我不知道参数,今天我要添加到用户列表表管理面板中的专栏中,我发现fortunatelly教程,这里是代码ADD_ACTION,的add_filter,user_can ECT在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

安装IDE如eclipse,你会很容易找到函数的定义和文档 –

+0

我认为stevenlee更多的是在钩的概念挣扎而不是试图找到相应功能的定义。至少我试着回答下面 – barakadam

回答

2

WordPress是精美的设计,因为大多数它的行动不直接执行,而是通过所谓的行动过滤器。这给你,开发者一个挂钩到这些操作的可能性。挂钩意味着你可以用非常干净的方式在WP的逻辑中间挤压你自己的逻辑,只需要声明你希望在使用相应钩子的地方完成任务。更确切地说:

操作

因此,例如,当一个岗位被保存,WordPress的不只是保存后,其通过执行这一行做的:

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好文章!我错过了Codex的一些链接;) – brasofilo

+0

哦,为你的答案,我已经知道了,但我仍然困惑:你给了我一个例子 do_action('save_post',$ post_ID,$ post);我想知道是否存在一个实际的功能 save_post存在,我使用的是zend工作室刚刚搜索的save_post,但它打我,它并没有出现 一个函数,只有save_post.well的应用程序,如果这是不是一个函数(我 按照你的解释,我得出结论,save_post仅仅是一个ID或者说一个名字 开发商进行二次开发),我真的很遗憾的是,它是如何工作保存 后也提前thanx! – stevenlee

相关问题