Wordpress-Elementor自定义小部件-条件控件

时间:2019-06-01 12:38:46

标签: wordpress widget controls elementor

我正在创建我的第一个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',
            ]
        );

1 个答案:

答案 0 :(得分:1)

为每种职位类型创建各种分类选择。如果以编程方式创建它可能会起作用,因此您无需对其进行硬编码。然后,仅在帖子类型选择的值与之匹配时才显示特定的分​​类选择。您可以使用control conditions来完成这一部分。