wppizza / markup / global / navigation.dropdown.php

Hierarchical WPPiza categories navigation widget using shortcode [wppizza type='navigation' as_dropdown='1'] or the widget available from Appearance -> Widgets -> Wppizza -> Widget Type='Navigation' and 'As dropdown' checked listing categories as dropdown

For shortcode attributes please refer to the shortcode section

CSS Targeting

  • Wrapper div element id: #wppizza-categories-[unique_id] (unique to each instance of a widget)
  • Wrapper div element class: .wppizza-categories (used by all instances of widget)

if you simply want to edit some styles/layout (text-sizes, color, margins, paddings etc etc ) it is strongly recommended to use css instead of filters/actions. Please refer to Modify Styles/Layout

Filters available

apply filters by adding them to your child-theme’s functions.php (notes regarding functions.php).
many display options are also available by simply using the relevant shortcode attributes instead of filters

  • filter name: wppizza_filter_navigation_widget_dropdown_markup
    purpose: modify the html markup of the html as required

    @param: $markup array (array of markup elements)
    @param: $atts array (attributes)
    @param: $id int (unique id for each instance)
    @return: array

    examples:

    
    
    add_filter('wppizza_filter_navigation_widget_dropdown_markup', 'myprefix_filter_navigation_widget_dropdown_markup', 10, 3);
    function myprefix_filter_navigation_widget_dropdown_markup($markup, $atts, $id, $is_dropdown){
    
    	/* 
    		notes: 
    		use print_r($markup) to view array keys with their respective markup
    		use print_r($atts) to view attributes
    		use print_r($id) to view id of instance
    		use global $wppizza_options; to access all options/settings/localization strings etc set in the plugin 
    	*/
    
    	/* example: adding a paragraph AFTER opening div element using standard php concatenation */
    	$markup['div_'] .= '<p>more text after opening div</p>'; 
    
    	/* example: adding a paragraph BEFORE opening div element  using standard php concatenation */
    	$markup['div_'] = '<p>more text before opening div</p>' . $markup['div_']; 
    
    	/* example: adding a paragraph AFTER opening div element using wppizza array_splice helper function */
    	$splice_after['myprefix_paragraph'] = '<p>more text after opening div</p>'; 
    	$markup = wppizza_array_splice($markup, $splice_after, 'div_' );
    
    	/* example: adding a paragraph BEFORE opening div element  using wppizza array_splice helper function */
    	$splice_before['myprefix_paragraph'] = '<p>more text before opening div</p>'; 	
    	$markup = wppizza_array_splice($markup, $splice_before, 'div_' , true);
    
    	/* example: removing wrapping div elements for the first instance of the widget on the page */
    	if($id == 1){
    	unset($markup['div_']);
    	unset($markup['_div']);
    	}
    
    	/* example: using actions of another plugin that by default outputs html to add it after the wrapper div */
    	ob_start(); # start buffering
    	do_action('other_plugin_output'); # run action of other plugin that outputs things
    	$buffer= ob_get_contents(); # capture buffer in variable
    	ob_end_clean(); # clean buffer			
    	$markup['_div'] = $markup['_div'] . $buffer; # add buffered output after end of wrapper
    
    return $markup;
    }
    		
  • filter name: wppizza_filter_navigation_widget_arguments
    purpose: filter arguments

    @param: $args array of arguments used for wp_list_categories or wp_dropdown_categories (if using dropdown option)
    @param: $atts array (widget attributes)
    @return: array

    for full ist of arguments see wordpress codex wp_list_categories and wp_dropdown_categories

    examples:

    
    
    add_filter('wppizza_filter_navigation_widget_arguments', 'prefix_filter_navigation_widget_arguments', 10, 2);
    function prefix_filter_navigation_widget_arguments($args, $atts){
    	/* change title_li string */
    	$args['title_li'] = 'some other title';
    	/* use your own walker class  */
    	$args['walker']	=> new My_Own_Custom_Wppizza_Category_Walker()
    
    return $args;
    }
    		
  • filter name: wppizza_filter_navigation_widget_class
    purpose: add your own classname

    @param: $class array(array of classes)
    @param: $atts array (attributes)
    @param: $id int (unique id for each instance)
    @return: array

    examples:

    
    
    add_filter('wppizza_filter_navigation_widget_class', 'prefix_filter_navigation_widget_class', 10, 3);
    function prefix_filter_navigation_widget_class($class, $atts, $id){
    	/* example: add additional classname for the first instance of the widget on the page */
    	if($id == 1){
    		$class['new_class'] = 'my-class';
    	}
    return $class;
    }
    		

Actions available

  • none

Editing files directly

ensure you have also read the Modify/Edit Templates

basepath: [plugin-path]/wppizza/templates/markup

filepath: [plugin-path]/wppizza/templates/markup/global/navigation.dropdown.php

Modules used in file

  • None

Module used by file(s)

  • None