wordpress - 无法从 edit.php 中删除插件的元框

标签 wordpress meta-boxes

我正在尝试删除插件的 Page Links To来自 edit.php 屏幕(文章编辑)的作者用户角色的元框...我可以对除 page-links-to 之外的所有其他元框执行此操作。

这是我的代码

if ( current_user_can('author') )
{

    function my_remove_meta_boxes()
    {
        remove_meta_box('postexcerpt', 'post', 'normal');
        remove_meta_box('trackbacksdiv', 'post', 'normal');
        remove_meta_box('postcustom', 'post', 'normal');
        remove_meta_box('revisionsdiv', 'post', 'normal');
        remove_meta_box('commentstatusdiv', 'post', 'normal');
        remove_meta_box('commentsdiv', 'post', 'normal');
        remove_meta_box('slugdiv', 'post', 'normal');
        remove_meta_box('tagsdiv-post_tag', 'post', 'side');
        remove_meta_box('categorydiv', 'post', 'side');
        remove_meta_box('postimagediv', 'post', 'side');

        remove_meta_box('page-links-to', 'post', 'normal');

    }
    add_action( 'do_meta_boxes', 'my_remove_meta_boxes' );

在插件的源代码中我发现了这个:

function do_meta_boxes( $page, $context ) {
        // Plugins that use custom post types can use this filter to hide the PLT UI in their post type.
        $plt_post_types = apply_filters( 'page-links-to-post-types', array_keys( get_post_types( array('show_ui' => true ) ) ) );

        if ( in_array( $page, $plt_post_types ) && 'advanced' === $context )
            add_meta_box( 'page-links-to', 'Page Links To', array( $this, 'meta_box' ), $page, 'advanced', 'low' );
    }

但我找不到任何方法来检测工作 Hook 以删除元框。

最佳答案

两个选项。

为 Hook 添加较低优先级。

add_action( 'do_meta_boxes', 'my_remove_meta_boxes', 9999 );

此时,插件 Hook 应该已经运行并且删除将会起作用。我建议将 current_user_can 移至回调函数 my_remove_meta_boxes() 内。

使用插件提供的钩子(Hook)

add_filter( 'page-links-to-post-types', 'remove_box_so_16290352' );

function remove_box_so_16290352( $post_types )
{
    $key = array_search( 'page', $post_types );
    if( $key !== false ) {
        unset($post_types[$key]);
    }

    return $post_types;
}

关于wordpress - 无法从 edit.php 中删除插件的元框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16290352/

相关文章:

Wordpress 中的 CSS 子菜单居中对齐

Wordpress 自定义帖子类型和永久链接重写

javascript - Youtube iframe 视频未在 WordPress 中显示

php - 在 wordpress 插件中使用 zebra_form 时出错

php - 可重复使用的自定义 WordPress 元框

wordpress - 如何在类别中添加自定义元字段?

php - 管理面板中 Wordpress Post 数组的奇怪问题

java - 服务器为 Java 中的 POST 请求返回 400 错误代码

php - 根据产品 ID 在 WooCommerce 感谢页面上添加自定义消息