添加操作,添加过滤器,用户可以在wordpress中执行操作

添加操作,添加过滤器,用户可以在wordpress中执行操作,wordpress,Wordpress,我已经开发wordpress好几天了,但是我没有找到任何方法来实现这些功能,比如:添加动作、添加过滤器、用户可以,我不知道它们所指的功能是什么。 更糟糕的是,我不知道参数,今天我想在用户列表表管理面板中添加一列,我很幸运地找到了一个教程,下面是代码 add_filter( 'manage_users_columns', 'add_user_column'); function add_user_column( $columns){ $columns['available_sticker

我已经开发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\u users\u columns
来自哪里,或者为什么我应该使用
manage\u users\u columns
而不是其他代码?困惑的 而且它们还有匹配的代码,如
apply\u filter
等。
有人能帮我走出迷宫,哎呀

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\u filters()
的特殊操作,巧妙地执行了许多“过滤”操作。这使您可以像操作一样,将自己的过滤器添加到已应用的过滤器中。因此,当显示帖子内容时,WP将执行:

apply_filters('the_content', $post->post_content);
钩子的名称是内容。如果您使用:

add_filter('the_content', 'your_function_to_execute_to_further_filter_content');
您可以使用一个名为
your\u function\u to\u execute\u to\u further\u filter\u content()
的函数,该函数可以将内容作为参数,并在您希望对其进行任何处理后返回过滤后的版本。然后,这种处理方法将应用于WP中的任何地方,其中钩子
内容
用于执行这些过滤器(包括WP默认过滤器、添加到同一钩子的插件过滤器以及您自己的过滤器)


所以在这里,您使用这些钩子,这样您就可以在不弄乱WP核心代码的情况下干扰WP操作。您声明了希望执行的额外操作,并让WP知道这一点。然后,每次执行相应的钩子操作或过滤器时,WP都会有礼貌地执行您的函数。

这都在Wordpress Codex中:像eclipse一样安装IDE,您将很容易找到函数定义和文档。我认为stevenlee更多地是在与钩子的概念作斗争,而不是试图找到一个相应函数的定义。至少我试着回答下面的问题,谢谢你的回答,我明白了,但是我;我仍然很困惑:你给了我一个do_动作的例子('save_post',$post_ID,$post);我想知道是否存在真正的save_post函数,我使用zend studio刚刚搜索了save_post,但它击中了我,它没有出现函数,只有save_post的应用程序。好吧,如果这不是函数的话(我按照你的解释,我得出结论,save_post只是一个id,或者说是二次开发的开发者的一个名字),我真的很遗憾,它是如何工作来保存post的??也就是提前保存thanx!