Function Reference: geodir_popular_post_category_output
Summary
Generates popular post category HTML.
Global Values
- $wpdb
- (object) (required) WordPress Database object.
- Default: None
- $plugin_prefix
- (string) (required) Geodirectory plugin table prefix.
- Default: None
- $geodir_post_category_str
- (string) (required) The geodirectory post category.
- Default: None
Package
GeoDirectory
Parameters
- $args
- (array|string) (required) Display arguments including before_title, after_title, before_widget, and
after_widget.- Default: None
- $instance
- (array|string) (required) The settings for the particular instance of the widget.
- Default: None
Change Log
Since: 1.0.0
1.5.1 Added option to set default post type.
1.6.9 Added option to show parent categories only.
1.6.18 Added option to show parent categories only.
Filters
‘geodir_pp_category_taxonomy’ [Line: 2902]
‘geodir_pp_category_sort’ [Line: 2935]
Source File
geodir_popular_post_category_output() is located in geodirectory-functions/general_functions.php [Line: 2869]
Source Code
function geodir_popular_post_category_output( $args = '', $instance = '' ) { // prints the widget global $wpdb, $plugin_prefix, $geodir_post_category_str; extract( $args, EXTR_SKIP ); echo $before_widget; /** This filter is documented in geodirectory_widgets.php */ $title = empty( $instance['title'] ) ? __( 'Popular Categories', 'geodirectory' ) : apply_filters( 'widget_title', __( $instance['title'], 'geodirectory' ) ); $gd_post_type = geodir_get_current_posttype(); $category_limit = isset( $instance['category_limit'] ) && $instance['category_limit'] > 0 ? (int) $instance['category_limit'] : 15; if (!isset($category_restrict)) { $category_restrict = false; } if ( ! empty( $gd_post_type ) ) { $default_post_type = $gd_post_type; } elseif ( isset( $instance['default_post_type'] ) && gdsc_is_post_type_valid( $instance['default_post_type'] ) ) { $default_post_type = $instance['default_post_type']; } else { $all_gd_post_type = geodir_get_posttypes(); $default_post_type = ( isset( $all_gd_post_type[0] ) ) ? $all_gd_post_type[0] : ''; } $parent_only = !empty( $instance['parent_only'] ) ? true : false; $taxonomy = array(); if ( ! empty( $gd_post_type ) ) { $taxonomy[] = $gd_post_type . "category"; } else { $taxonomy = geodir_get_taxonomies( $gd_post_type ); } $taxonomy = apply_filters('geodir_pp_category_taxonomy', $taxonomy); $term_args = array( 'taxonomy' => $taxonomy ); if ( $parent_only ) { $term_args['parent'] = 0; } $terms = get_terms( $term_args ); $a_terms = array(); $b_terms = array(); foreach ( $terms as $term ) { if ( $term->count > 0 ) { $a_terms[ $term->taxonomy ][] = $term; } } if ( ! empty( $a_terms ) ) { // Sort CPT taxonomies in categories widget. if ( !empty( $taxonomy ) && is_array( $taxonomy ) && count( $taxonomy ) > 1 ) { $gd_post_types = geodir_get_posttypes(); $sort_taxonomies = array(); foreach ( $gd_post_types as $gd_post_type ) { $taxonomy_name = $gd_post_type . 'category'; if ( !empty( $a_terms[$taxonomy_name] ) ) { $sort_taxonomies[$taxonomy_name] = $a_terms[$taxonomy_name]; } } $a_terms = !empty( $sort_taxonomies ) ? $sort_taxonomies : $a_terms; } $sort_by = apply_filters('geodir_pp_category_sort', 'count'); foreach ( $a_terms as $b_key => $b_val ) { $b_terms[ $b_key ] = geodir_sort_terms( $b_val, $sort_by ); } $default_taxonomy = $default_post_type != '' && isset( $b_terms[ $default_post_type . 'category' ] ) ? $default_post_type . 'category' : ''; $tax_change_output = ''; if ( count( $b_terms ) > 1 ) { $tax_change_output .= ""; } if ( ! empty( $b_terms ) ) { $terms = $default_taxonomy != '' && isset( $b_terms[ $default_taxonomy ] ) ? $b_terms[ $default_taxonomy ] : reset( $b_terms );// get the first array global $cat_count;//make global so we can change via function $cat_count = 0; ?>"; } /* add scripts */ add_action( 'wp_footer', 'geodir_popular_category_add_scripts', 100 ); ?>'; geodir_helper_cat_list_output( $terms, $category_limit, $category_restrict); echo ''; ?>"; echo '' . __( 'More Categories', 'geodirectory' ) . ''; echo '' . __( 'Less Categories', 'geodirectory' ) . ''; echo "