WordPress 插件为主题分类法的对象类型注册分类法
WordPress Plugin Register Taxonomy for Object Type of Theme Taxonomies
在我的 WordPress 插件中,我使用以下代码为所有已安装的分类自动添加元框:
add_action( 'init', 'my_plugin_register_taxonomies_for_object_type');
function my_plugin_register_taxonomies_for_object_type()
{
$args = array(
'public' => true,
);
$output = 'objects';
$taxonomies = get_taxonomies( $args, $output );
foreach ( $taxonomies as $taxonomy )
{
register_taxonomy_for_object_type( $taxonomy->name, 'jt_condet_content' );
}
}
这对所有 Taxonmies 都非常有效,即使是那些通过插件安装的 Taxonmies。但是,我注意到缺少一个分类法。这是一个正常的 Post 分类法,由子主题使用 register_taxonomy()
在主题的 init
挂钩中安装。
知道为什么我的插件只遗漏了这个分类法 my_plugin_register_taxonomies_for_object_type()
吗?它让我疯狂。我想显示所有已安装的 public 分类法的元框,无论它们是内置的、通过插件安装的还是通过主题安装的。
我试了一下动作挂钩,wp_loaded
似乎有用,但我不是 100% 确信这是正确的挂钩,我还好吗?
你能解释一下使用 wp_loaded
而不是 init
的缺点吗?
如果您正在使用 init
并且子主题也在使用 init
您可能只需要更改 您的 挂钩的优先级以确保它 运行s 在 他们的之后。尝试做:
add_action( 'init', 'my_plugin_register_taxonomies_for_object_type', 20 );
假设他们的主题使用默认 (10),您的将 运行 在他们之后,他们的分类应该可用。
我认为使用 wp_loaded
的唯一缺点是 wp_loaded
将 运行 在 之后执行一些其他操作,例如 widgets_init
、register_sidebar
,可能还有其他几个。如果其他插件/主题有任何其他回调期望 your post 类型注册这些分类法,and 他们挂钩在 wp_loaded
之前,他们会失败,因为 wp_loaded
运行 在他们之后。在大多数情况下 wp_loaded
可能没问题。
在我的 WordPress 插件中,我使用以下代码为所有已安装的分类自动添加元框:
add_action( 'init', 'my_plugin_register_taxonomies_for_object_type');
function my_plugin_register_taxonomies_for_object_type()
{
$args = array(
'public' => true,
);
$output = 'objects';
$taxonomies = get_taxonomies( $args, $output );
foreach ( $taxonomies as $taxonomy )
{
register_taxonomy_for_object_type( $taxonomy->name, 'jt_condet_content' );
}
}
这对所有 Taxonmies 都非常有效,即使是那些通过插件安装的 Taxonmies。但是,我注意到缺少一个分类法。这是一个正常的 Post 分类法,由子主题使用 register_taxonomy()
在主题的 init
挂钩中安装。
知道为什么我的插件只遗漏了这个分类法 my_plugin_register_taxonomies_for_object_type()
吗?它让我疯狂。我想显示所有已安装的 public 分类法的元框,无论它们是内置的、通过插件安装的还是通过主题安装的。
我试了一下动作挂钩,wp_loaded
似乎有用,但我不是 100% 确信这是正确的挂钩,我还好吗?
你能解释一下使用 wp_loaded
而不是 init
的缺点吗?
如果您正在使用 init
并且子主题也在使用 init
您可能只需要更改 您的 挂钩的优先级以确保它 运行s 在 他们的之后。尝试做:
add_action( 'init', 'my_plugin_register_taxonomies_for_object_type', 20 );
假设他们的主题使用默认 (10),您的将 运行 在他们之后,他们的分类应该可用。
我认为使用 wp_loaded
的唯一缺点是 wp_loaded
将 运行 在 之后执行一些其他操作,例如 widgets_init
、register_sidebar
,可能还有其他几个。如果其他插件/主题有任何其他回调期望 your post 类型注册这些分类法,and 他们挂钩在 wp_loaded
之前,他们会失败,因为 wp_loaded
运行 在他们之后。在大多数情况下 wp_loaded
可能没问题。