首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >两个不同的自定义插件(Metaboxes)上的Wordpress Add_filter优先级问题

两个不同的自定义插件(Metaboxes)上的Wordpress Add_filter优先级问题
EN

Stack Overflow用户
提问于 2015-11-11 05:15:56
回答 1查看 136关注 0票数 1

我最近为我的一个项目开发了两个独立的wordpress插件

  1. 合作伙伴
  2. 资源库

这两个插件都创建自定义post类型fsb_partnersfsb_resource_library。在这两个插件中,我创建了不同的metabox (包含一个文件字段,即Logo和资源库插件创建了带有两个文件字段的metabox,即Audio和PDF)。

我使用以下代码在每个插件中创建metabox:

add_filter( 'cmb_meta_boxes', array($this, "fsb_partners_metaboxes"), 999); ->合作伙伴插件

add_filter( 'cmb_meta_boxes', array($this, "fsb_resource_library_metaboxes"), 999); ->资源库插件

现在只有资源库插件中的metabox是可见的,而其他插件则是不可见的。如果我将partner的优先级更改为9999,那么它就会出现,但同时资源库插件也会中断。

我知道这是wordpress的add_filter钩子的优先问题,但我无法掌握它。有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-12 06:10:42

我自己修的。刚刚在我的主题的functions.php中创建了一个单独的(公共)函数,如下所示:

代码语言:javascript
运行
复制
add_filter('cmb_meta_boxes', function( array $metaboxes = array() ) {

    global $fsb_resource_library, $fsb_partner;

    if( class_exists('fsb_resource_library') && is_object($fsb_resource_library) ) {
        $metaboxes += $fsb_resource_library->fsb_resource_library_metaboxes();  
    }

    if( class_exists('fsb_partners') && is_object($fsb_partner) ) {
        $metaboxes += $fsb_partner->fsb_partners_metaboxes();   
    }

    return $metaboxes;

});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33644666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档