true ), 'objects' ); $type_options = array( '_all' => __( 'All', 'so-widgets-bundle' ) ); foreach ( $types as $id => $type ) { $type_options[ $id ] = $type->labels->name; } $this->fields = array( 'post_type' => array( 'type' => 'select', 'label' => __( 'Post type', 'so-widgets-bundle' ), 'multiple' => true, 'options' => $type_options, 'default' => 'post' ), 'post__in' => array( 'type' => 'autocomplete', 'label' => __( 'Post in', 'so-widgets-bundle' ), 'source' => 'posts', ), 'tax_query' => array( 'type' => 'autocomplete', 'label' => __( 'Taxonomies', 'so-widgets-bundle' ), 'source' => 'terms', ), 'date_type' => array( 'type' => 'radio', 'label' => __( 'Date selection type', 'so-widgets-bundle' ), 'options' => array( 'specific' => __( 'Specific', 'so-widgets-bundle' ), 'relative' => __( 'Relative', 'so-widgets-bundle' ), ), 'description' => __( 'Select a range between specific dates or relative to the current date.', 'so-widgets-bundle' ), 'default' => 'specific', 'state_emitter' => array( 'callback' => 'select', 'args' => array( 'date_type' ) ), ), 'date_query' => array( 'type' => 'date-range', 'label' => __( 'Dates', 'so-widgets-bundle' ), 'date_type' => 'specific', 'state_handler' => array( 'date_type[specific]' => array('show'), '_else[date_type]' => array('hide'), ), ), 'date_query_relative' => array( 'type' => 'date-range', 'label' => __( 'Dates', 'so-widgets-bundle' ), 'date_type' => 'relative', 'state_handler' => array( 'date_type[relative]' => array('show'), '_else[date_type]' => array('hide'), ), ), 'orderby' => array( 'type' => 'select', 'label' => __( 'Order by', 'so-widgets-bundle' ), 'options' => array( 'none' => __( 'No order', 'so-widgets-bundle' ), 'ID' => __( 'Post ID', 'so-widgets-bundle' ), 'author' => __( 'Author', 'so-widgets-bundle' ), 'title' => __( 'Title', 'so-widgets-bundle' ), 'date' => __( 'Published date', 'so-widgets-bundle' ), 'modified' => __( 'Modified date', 'so-widgets-bundle' ), 'parent' => __( 'By parent', 'so-widgets-bundle' ), 'rand' => __( 'Random order', 'so-widgets-bundle' ), 'comment_count' => __( 'Comment count', 'so-widgets-bundle' ), 'menu_order' => __( 'Menu order', 'so-widgets-bundle' ), 'meta_value' => __( 'By meta value', 'so-widgets-bundle' ), 'meta_value_num' => __( 'By numeric meta value', 'so-widgets-bundle' ), 'post__in' => __( 'By include order', 'so-widgets-bundle' ), ), 'default' => 'date', ), 'order' => array( 'type' => 'radio', 'label' => __( 'Order direction', 'so-widgets-bundle' ), 'options' => array( 'ASC' => __( 'Ascending', 'so-widgets-bundle' ), 'DESC' => __( 'Descending', 'so-widgets-bundle' ), ), 'default' => 'DESC', ), 'posts_per_page' => array( 'type' => 'number', 'label' => __( 'Posts per page', 'so-widgets-bundle' ), ), 'sticky' => array( 'type' => 'select', 'label' => __( 'Sticky posts', 'so-widgets-bundle' ), 'options' => array( '' => __( 'Default', 'so-widgets-bundle' ), 'ignore' => __( 'Ignore sticky', 'so-widgets-bundle' ), 'exclude' => __( 'Exclude sticky', 'so-widgets-bundle' ), 'only' => __( 'Only sticky', 'so-widgets-bundle' ), ), ), 'additional' => array( 'type' => 'text', 'label' => __( 'Additional', 'so-widgets-bundle' ), 'description' => __( 'Additional query arguments. See query_posts.', 'so-widgets-bundle' ), ), ); } protected function render_field_label( $value, $instance ) { ?>
collapsible ) { ?>
create_and_render_sub_fields( $value, array( 'name' => $this->base_name, 'type' => 'composite' ) ); if ( $this->collapsible ) { ?>
$item ) { if ( ! empty( $item ) ) { if ( is_array( $item ) ) { $item = implode( ',', $item ); } $result .= ( empty( $result ) ? '' : '&' ) . $key . '=' . $item; } } return $result; } }