我正在编写一个插件,其中有自定义分类法(category)。我想阻止
- any user 来自deleting some 的custom categories.
假设id1-id10的类别没有人(包括管理员)可以删除。
我正在编写一个插件,其中有自定义分类法(category)。我想阻止
假设id1-id10的类别没有人(包括管理员)可以删除。
如果要阻止删除admin中的单个或一组类别ID,可以通过阻止所有删除该类别的请求来阻止。
wordpress中没有可以轻松使用的钩子,但总会有解决方法。在我的示例中,我使用check_admin_referer
和check_ajax_referer
钩子(注意钩子名称中的输入错误)与检查请求是否确实是删除类别的请求(删除category
分类学)。
实例Must-Use Plugin: Wordpress Block Category Deletion Example
删除被阻止的类别时,您将获得一个您没有权限这样做的权限消息(Ajax)或阻止删除该类别消息,您需要使用浏览器返回。
你可以使用
<?php $cats = wp_list_categories(\'echo\'=>FALSE);?>
要查找类别,请搜索您想要的类别。然后您可以使用<?php wp_set_object_terms( $object_id, $missing_cat, \'category\', TRUE ); ?>
把它们放进去。你需要一个职位,你不介意把所有类别都分配给它,一个私人职位在这里会很好。因此,最终的代码可能类似于:
<?php
function cats_protector(){
$current_cats = wp_list_categories(\'echo\'=>FALSE);
$my_cats = array(\'list\',\'of\',\'required\',\'categories\');
foreach ($my_cats as $cat){
if(!in_array($cat, $current_cats){
wp_set_object_terms( 15, $cat, \'category\', TRUE );
}
}
}
add_action(\'init\',\'cats_protector\');
?>
这个代码是直接从大脑中提取的,新鲜且未经测试。值得注意的是,这不会阻止删除,只要在init上调用它,它只会将它们直接放回原处。
为了防止删除,可以在管理面板中使用CSS隐藏选项。
我通过使用以下插件在管理面板中加载自定义css来解决此问题:http://wordpress.org/extend/plugins/custom-admin-css/然后隐藏所需帖子/页面或类别的删除选项。