只过滤部分插件功能

时间:2012-12-19 作者:kristina childs

我试图编辑bbpress的面包屑默认设置的几部分,但我尝试的过滤器最终取代了整个功能。如何仅替换位?这是现在的过滤器

function custom_bbp_breadcrumb() {
    $args = array (
        \'before\'  => \'<div class="bbp-breadcrumb">\',
        \'after\'   => \'</div>\',
        \'sep\'     => __( \'&rsaquo;\', \'bbpress\' ),
    );
    return $args;
}

add_filter(\'bbp_get_breadcrumb\', \'custom_bbp_breadcrumb\' );
我可以复制+粘贴整个函数并对其进行过滤,但这将非常低效。

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

看起来这不是我们想要的过滤器。它就在BBPress的末端bbp_get_breadcrumb 函数,它位于要更改的内容之后。

您可以使用更改分隔符bbp_breadcrumb_separator 看起来前后都可以设置bbp_get_breadcrumb_pre. 事实上,看起来您应该能够对所有这些过滤器使用最后一个过滤器。

我不运行BBPress,因此这是未经测试的,但您想要的可能是:

function custom_bbp_breadcrumb() {
    $args[\'before\']  = \'<div class="bbp-breadcrumb">\';
    $args[\'after\']   = \'</div>\';
    $args[\'sep\']     = __( \'&rsaquo;\', \'bbpress\' );
    return $args;
}
add_filter(\'bbp_before_get_breadcrumb_parse_args\', \'custom_bbp_breadcrumb\' );
您使用过滤器函数所做的是完全擦除输入。您在过滤器函数中创建了一个全新的数组,并将该新数组发送回。修改后的过滤器所做的是接受输入,修改它,然后返回,只更改了一些部分,其他的都不做。

结束

相关推荐

只在本地主机上运行的Functions.php代码?

我想在函数中运行add\\u操作。仅当主题是从我的localhost开发站点加载时才使用php。如何使其仅在本地主机上运行?function livereload(){ ?> // mycode <?php } add_action(\'headway_body_close\', \'livereload\');