1. Modify Css / Styles / Layout
    1. Frontend Css
    2. Admin Css
  2. Templates
    1. Pages
      1. page.order.php
      2. page.confirm-order.php
      3. page.processing.php
      4. page.thankyou.php
      5. page.cancelled.php
      6. page.purchase-history.php
    2. Order
      1. itemised.php
      2. summary.php
      3. transaction_details.php
    3. Global
      1. orderinfo.php (Widget)
      2. openingtimes.php (Widget)
      3. additives.php (Widget)
      4. navigation.list.php (Widget)
      5. navigation.dropdown.php (Widget)
      6. search.php (Widget)
      7. totals.php (Widget)
      8. pickup_choice.php (Mixed)
      9. login.php (Module)
      10. profile.register.php (Module)
      11. profile.update.php (Module)
      12. pages.pickup_note.php (Module)
      13. formfields.inputs.php (Module)
      14. formfields.values.php (Module)
    4. Cart
      1. cart.container.php
      2. cart.shopclosed.php
      3. cart.empty.php
      4. cart.pickup_note.php
      5. cart.checkout_button.php
      6. cart.empty_cart_button.php
      7. cart.minimum_order.php
      8. minicart.php
    5. Loop (Menu Items)
      1. header.php
      2. no_results.php
      3. posts.title.php
      4. posts.thumbnail.php
      5. posts.prices.php
      6. posts.content.php
      7. posts.permalink.php
      8. additives.php
      9. pagination.php
      10. theme-wrapper.php
    6. Search Results
      1. search.php
    7. Single Menu Item
      1. single.php
    8. functions.php
  3. Filters, Actions, Functions
    1. Global WPPizza functions
    2. WPPizza options (Filter)
    3. Currency (Filter)
    4. After every order (Action)
    5. Getting orders (Function)
  4. Constants
    1. Admin Name
    2. Admin Menu Icon
  5. Codesnippets
    1. Create your own sales report
    2. Order history - todays orders
    3. Email/Print templates
    4. Email Subject Line
    5. Add attachment to email
    6. On order status update
    7. Unconfirmed orders
    8. Customise order id
    9. Changing post type arguments
    10. Gateway filter frontend
    11. Users previous orders
    12. Dynamic menu item prices
    13. Prices output loop
    14. Pickup opening times
    15. Additional validation function
  6. Extensions
    1. Google Cloudprint
    2. Cross-Sells
    3. Goodcom Printer
    4. Add Ingredients
    5. Pdf Invoices
    6. Delivery By Post/Zipcode

2.3.5.navigation.dropdown.php (Widget)

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


    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){
    		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){
    	/* 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


    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


    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
Suggest Edit

documentor id 5