我正在创建我的第一个elementor小部件。我需要创建3个条件控件: 选择一个(自定义)post_type->选择属于相应post_type的分类法->选择属于相应分类法的帖子。
如何创建这些控件?
这是我到目前为止所获得的,但是问题是,当我选择一个职位类型时,在分类法列表中,我将拥有所有的分类法,而不仅仅是那些属于所选post_type的分类法。
$post_types = get_post_types([], 'objects');
$options = [];
foreach ( $post_types as $post_type ) {
$options[$post_type->name] = $post_type->label;
}
$this->add_control(
'post_types',
[
'label' => __( 'Choose a post type', 'cf-elementor-apm-widget' ),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => $options,
'classes' => 'post_types',
]
);
$taxonomies = get_taxonomies([], 'objects');
$options = [];
foreach ( $taxonomies as $taxonomy ) {
$options[$taxonomy->name] = $taxonomy->label . " [{$taxonomy->name}]";
}
$this->add_control(
'taxonomies',
[
'label' => __( 'Choose a taxonomy', 'cf-elementor-apm-widget' ),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => $options,
'classes' => 'taxonomy',
]
);
答案 0 :(得分:1)
为每种职位类型创建各种分类选择。如果以编程方式创建它可能会起作用,因此您无需对其进行硬编码。然后,仅在帖子类型选择的值与之匹配时才显示特定的分类选择。您可以使用control conditions来完成这一部分。