【问题标题】:Wordpress: Disable Tags only for PostsWordpress:仅对帖子禁用标签
【发布时间】:2014-05-06 16:11:45
【问题描述】:

我目前正在为 Wordpress 3.8.1 开发一个主题。由于我的主题不会显示任何标签,所以我想禁用它们(仅来自帖子,而不是来自自定义帖子类型)。但是我该怎么做呢?我已经尝试过了,但显然它什么也没做:

register_taxonomy('post_tag', null);

要明确:我不只是想隐藏模板文件中的标签,而是想完全禁用它们,所以在后端,帖子下没有标签的菜单项。

有可能吗?但愿如此。感谢您的帮助!

更新

另外,我尝试了以下方法,没有任何效果:

register_taxonomy('post_tag', array());

global $wp_taxonomies;
$taxonomy = 'post_tag';
if(taxonomy_exists($taxonomy))
    unset($wp_taxonomies[$taxonomy]);

在编辑帖子时都删除了标签框,但菜单中仍然有指向标签列表的链接!

【问题讨论】:

标签: php wordpress tags


【解决方案1】:

从 WordPress 3.7 开始,有一个 unregister_taxonomy_for_object_type 函数可用于此类事情。

在你的情况下:

// Remove tags support from posts
function myprefix_unregister_tags() {
    unregister_taxonomy_for_object_type('post_tag', 'post');
}
add_action('init', 'myprefix_unregister_tags');

查看此函数here的文档。

【讨论】:

  • 这是我找到的最好的解决方案。它会删除标签管理菜单项、查看帖子列表时的标签列和编辑单个帖子时的标签元框。
【解决方案2】:

将此代码粘贴到您的functions.php中

add_action( 'admin_menu', 'myprefix_remove_meta_box');
function myprefix_remove_meta_box(){
   remove_meta_box( 'tagsdiv-post_tag','post','normal' );
}

tags 元框有一个tagsdiv-post_tag 类,所以这将删除tags 元框

add_action('init', 'remove_tags');
function remove_tags(){
    register_taxonomy('post_tag', array());
}

如果你完全想删除它

【讨论】:

  • 是的,它删除了它,但左侧菜单边栏中的链接仍然存在!
  • 谢谢,但您的第二个版本仍然只删除了框,而不是菜单中的链接!
  • 你试过add_action('init', 'remove_tags');吗,因为对我来说它会删除帖子下菜单中的墨水。
猜你喜欢
  • 2011-02-19
  • 2015-12-27
  • 2013-08-21
  • 2019-02-15
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多