__( 'Accordion FAQ', 'accordion-faq-plugin' ), 'base' => 'accordion_faq', 'category' => __( 'Content', 'accordion-faq-plugin' ), 'icon' => 'dashicons-editor-help', 'description' => __( 'Accessible, SEO-ready FAQ accordion.', 'accordion-faq-plugin' ), 'params' => array( array( 'type' => 'dropdown', 'heading' => __( 'Category', 'accordion-faq-plugin' ), 'param_name' => 'category', 'value' => $this->category_param(), ), array( 'type' => 'textfield', 'heading' => __( 'Maximum FAQs (-1 = all)', 'accordion-faq-plugin' ), 'param_name' => 'limit', 'value' => '-1', ), array( 'type' => 'dropdown', 'heading' => __( 'Style', 'accordion-faq-plugin' ), 'param_name' => 'style', 'value' => array( __( 'Default (from settings)', 'accordion-faq-plugin' ) => '', __( 'Modern', 'accordion-faq-plugin' ) => 'modern', __( 'Card', 'accordion-faq-plugin' ) => 'card', __( 'Bordered', 'accordion-faq-plugin' ) => 'bordered', __( 'Filled', 'accordion-faq-plugin' ) => 'filled', __( 'Separated', 'accordion-faq-plugin' ) => 'separated', __( 'Minimal', 'accordion-faq-plugin' ) => 'minimal', ), ), $this->yesno( __( 'Show search box', 'accordion-faq-plugin' ), 'search' ), $this->yesno( __( 'Show category filter', 'accordion-faq-plugin' ), 'filter' ), $this->yesno( __( 'Show expand / collapse all', 'accordion-faq-plugin' ), 'expand_all' ), $this->yesno( __( 'Show table of contents', 'accordion-faq-plugin' ), 'toc' ), ), ) ); } /** * A yes/no dropdown param definition. * * @param string $heading Label. * @param string $param_name Attribute. * @return array */ private function yesno( $heading, $param_name ) { return array( 'type' => 'dropdown', 'heading' => $heading, 'param_name' => $param_name, 'value' => array( __( 'No', 'accordion-faq-plugin' ) => '', __( 'Yes', 'accordion-faq-plugin' ) => '1', ), ); } /** * Category slug => label map for the dropdown. * * @return array */ private function category_param() { $out = array( __( 'All categories', 'accordion-faq-plugin' ) => '' ); $terms = get_terms( array( 'taxonomy' => Taxonomy::TAXONOMY, 'hide_empty' => false ) ); if ( ! is_wp_error( $terms ) ) { foreach ( $terms as $term ) { $out[ $term->name ] = $term->slug; } } return $out; } }