过滤器和挂钩之间的区别是什么?我怎样才能在儿童主题中使用它们

时间:2013-09-03 02:16:42

标签: php wordpress wordpress-plugin wordpress-theming

wordpress中过滤器和挂钩有什么区别。

如何在子主题中使用以下过滤器?

<?php
foreach ( $results as $result ) {
// external plugins can modify or disable field
$result = apply_filters( 'cp_package_field', $result, 'ad' );
if ( ! $result )
continue;
?>

如何在子主题中使用以下钩子?

/**
* called in cp_add_new_listing() to hook into inserting new ad process
*
* @since 3.2.1
* @param int $post_id
*
*/
function cp_action_add_new_listing( $post_id ) {
do_action( 'cp_action_add_new_listing', $post_id );
}

2 个答案:

答案 0 :(得分:0)

对于你的问题的第一部分,这里是一个解释的链接,我发现前一段时间非常全面,它帮助我理解其中的差异。

https://wordpress.stackexchange.com/questions/1007/difference-between-filter-and-action-hooks

答案 1 :(得分:0)

要在子主题中使用钩子,您可能需要在子主题的functions.php文件中包含以下代码:

/**
 * Our callback function to the hook
 * @param  int $post_id id of the post
 * @return void
 */
function my_child_theme_new_listing_cb( $post_id ) {
    if($post_id == 10) { //Or whatever you want
        echo 'Hello World';
    }
    //We do not have the responsibility to return something as it is a hook
}

add_action( 'cp_action_add_new_listing', 'my_child_theme_new_listing_cb', 10, 1 );

希望它有所帮助。