在不删除功能的情况下删除“slug”的Metabox

时间:2010-09-20 作者:NetConstructor.com

这里有一个有趣的问题。

我最近注意到,如果您使用该代码

remove_meta_box(\'slugdiv\', \'post\', \'normal\'); 
当您单击页面标题下的url slug时,实际上无法修改slug。

要澄清的是,当您为slugdiv使用remove\\u meta\\u框时,metabox和屏幕选项将被删除,但是您仍然可以单击文章标题下的url来编辑它。。。然而,当你去更新/发布帖子时,你所做的任何修改都不会生效。

我的目标是从post edit屏幕中删除同一个metabox,并将其从screen options页面中删除,但我希望确保在编辑post标题下的slug时,这仍然有效。

有人能提供这个问题的解决方案吗?提前谢谢。

4 个回复
最合适的回答,由SO网友:NetConstructor.com 整理而成

最后,我只是将以下CSS添加到我在函数中调用的CSS文件中。管理区域的php文件:

[for="slugdiv-hide"] { 
    display: none; 
    }

#slugdiv { 
    display: none; 
    }
这删除了屏幕选项和元框,同时仍然允许我编辑标题下的url。

UPDATED

根据FXFUTURE提供的答案,我修改了他的代码,对其进行了扩展,并将css值包括在屏幕选项和slug metabox中,同时确保代码只包含在新帖子中。php和post。php页面。

// HIDE THE SLUG METABOX AND SLUG SCREEN OPTIONS
   function hide_slug_options() {
    global $post;
    global $pagenow;
    $hide_slugs = "<style type=\\"text/css\\">#slugdiv, #edit-slug-box, [for=\\"slugdiv-hide\\"] { display: none; }</style>\\n";
    if (is_admin() && $pagenow==\'post-new.php\' OR $pagenow==\'post.php\') print($hide_slugs);
   }
   add_action( \'admin_head\', \'hide_slug_options\'  );

SO网友:sorich87

允许在帖子标题下使用slug edition的框实际上与slug metabox绑定。它需要它来工作。因此,删除metabox将破坏它。

我认为唯一的解决方案是使用javascript或css来隐藏它。类似这样的方法会奏效:

function hide_slug_box() {
    global $post;
    global $pagenow;
    if (is_admin() && $pagenow==\'post-new.php\' OR $pagenow==\'post.php\') {
        echo "<script type=\'text/javascript\'>
            jQuery(document).ready(function($) {
                jQuery(\'#edit-slug-box\').hide();
            });
            </script>
        ";
    }
}
add_action( \'admin_head\', \'hide_slug_box\'  );

SO网友:tolginho

您应该在add\\u meta\\u box钩子中调用remove\\u meta\\u box以使其工作。它在4.0上进行了测试。

add_action( \'add_meta_boxes\', \'customize_admin_backend_cpt\',0 );

function customize_admin_backend_cpt () {
    remove_meta_box( \'slugdiv\', \'your_cpt_goes_here\', \'normal\' );
}

SO网友:fxfuture

您可以在函数中使用它,而不是编辑css文件。php:

function hide_all_slugs() {
global $post;
$hide_slugs = "<style type=\\"text/css\\"> #slugdiv, #edit-slug-box { display: none; }</style>";
print($hide_slugs);
}
add_action( \'admin_head\', \'hide_all_slugs\'  );

结束

相关推荐

我可以将类别Metabox添加到附件吗?

我在用register_taxonomy_for_object_type() 将类别分类字段添加到媒体上载(附件)。我正在使用此代码执行此操作:add_action(\'init\', \'reg_tax\'); function reg_tax() { register_taxonomy_for_object_type(\'category\', \'attachment\'); } 这可以在查看图像时为媒体页面添加一个简单的分类文本字段。我真正想要的是让它显示实