如何检查可过滤的$vars?

时间:2011-04-21 作者:kaiser

注意:这更像是一个教程/维基,而不是一个真实的问题,应该作为以后问题的参考。如果您有什么要补充的,请随时添加答案。工作答案获得支持。:)

您希望修改某些wp核心函数的输出,而不是直接修改核心(这通常很糟糕),您发现了如下调用:

$filterable_var = apply_filters( \'name_of_filter\', $filterable_var );

过滤器功能允许您修改eg。$filterable_var 以及wp函数的输出。

问题是,您不知道函数到底想要什么作为输入。

标签检查您可以修改的内容
可能相关的问题:【请在此处自由添加您自己的问题。】

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

示例

导航菜单漫游器-允许将css类添加到(所有)菜单项。

// copyied from /wp-core/wp-includes/nav-menu-template.php > line 76 (wp 3.1.1) - start_el() function
$class_names = join( \' \', apply_filters( \'nav_menu_css_class\', array_filter( $classes ), $item, $args ) );
现在让我们检查一下$var:

function wpse15319_check_nav_menu_classes( $classes ) 
{
    // You can take any of the $vars from the core function above: $classes, $item, $args
    echo \'<pre>\';
        // nice list:
        print_r( $classes ); 
        // or check of what type the $var is
        var_dump( $classes );
    echo \'</pre>\';

    return $classes;
}
add_filter( \'nav_menu_css_class\', \'wpse15319_check_nav_menu_classes\', 10 );
修改-应用示例
function wpse15319_add_nav_menu_classes( $classes ) 
{
    $classes[] = \'\';
    $classes[] .= \'my added css classes\'; 

    return $classes;
}
add_filter( \'nav_menu_css_class\', \'wpse15319_add_nav_menu_classes\', 10 );

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴