shortcode for showadditives

Forum Forums User contributions shortcode for showadditives

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #9481
    Benedikt Quirmbach
    Participant

      Is there a shortcode for showadditives?
      I want to create a page or widget, where all additives are listed.
      Thanks for you support
      Benedikt

      #9487
      Olly
      Admin & Mod

        >Is there a shortcode for showadditives?

        no, there isn’t, sorry.
        but you can easily do this sort of thing somewhere:

        
        $options=get_option('wppizza');
        $additives=$options['additives'];
        foreach($additives as $additive){
        /*do something*/
        }
        
        #9527
        Benedikt Quirmbach
        Participant

          Thank you!
          I just wrote some php to create a widget and a shortcode to show the additives. Maybe you want to use it your way. It’s just a little code snippet that you can change the way you want it:

          <?php
          
          // ---------------------------------------------------------- //
          // ---------------- widget ---------------------------------- //
          // ---------------------------------------------------------- //
          
          // register Foo_Widget widget
          function register_wpPIZZA_additives() {
              register_widget( 'wpPIZZA_additives' );
          }
          add_action( 'widgets_init', 'register_wpPIZZA_additives' );
          
          /**
           * Adds Foo_Widget widget.
           */
          class wpPIZZA_additives extends WP_Widget {
          
          	/**
          	 * Register widget with WordPress.
          	 */
          	function __construct() {
          		parent::__construct(
          			'wpPIZZA_additives', // Base ID
          			__( 'Additives', 'text_domain' ), // Name
          			array( 'description' => __( 'Shows the additives registered in wpPIZZA plugIn', 'text_domain' ), ) // Args
          		);
          	}
          
          	/**
          	 * Front-end display of widget.
          	 *
          	 * @see WP_Widget::widget()
          	 *
          	 * @param array $args     Widget arguments.
          	 * @param array $instance Saved values from database.
          	 */
          	public function widget( $args, $instance ) {
          		echo $args['before_widget'];
          		if ( ! empty( $instance['title'] ) ) {
          			echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ). $args['after_title'];
          		}
          		
          		// get additives from wpPIZZA database
          		$options = get_option('wppizza');
          		$additives = $options['additives'];
          		foreach($additives as $additive) {
          			// show additives 1 per line: 'number: name'
          			echo implode(': ', $additive) . '<br />';
          		}
          		echo $args['after_widget'];
          	}
          
          	/**
          	 * Back-end widget form.
          	 *
          	 * @see WP_Widget::form()
          	 *
          	 * @param array $instance Previously saved values from database.
          	 */
          	public function form( $instance ) {
          		$title = ! empty( $instance['title'] ) ? $instance['title'] : __( 'New title', 'text_domain' );
          		?>
          		<p>
          		<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label> 
          		<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
          		</p>
          		<?php 
          	}
          
          	/**
          	 * Sanitize widget form values as they are saved.
          	 *
          	 * @see WP_Widget::update()
          	 *
          	 * @param array $new_instance Values just sent to be saved.
          	 * @param array $old_instance Previously saved values from database.
          	 *
          	 * @return array Updated safe values to be saved.
          	 */
          	public function update( $new_instance, $old_instance ) {
          		$instance = array();
          		$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
          
          		return $instance;
          	}
          
          } // class Foo_Widget
          
          // ---------------------------------------------------------- //
          // ---------------- shortcode ------------------------------- //
          // ---------------------------------------------------------- //
          
          // [wpPIZZA_additives title="additives"]
          function shortcode_wpPIZZA_additives( $atts ) {
          	$a = shortcode_atts( array(
          		'title' => 'additives',
          	), $atts );
          	
          	$myOutput = '';
          	// get additives from wpPIZZA database
          	$options = get_option('wppizza');
          	$additives = $options['additives'];
          	foreach($additives as $additive) {
          		// show additives 1 per line: 'number: name'
          		$myOutput .= implode(': ', $additive) . '<br />';
          	}
          	if($myOutput != '')
          	{
          		$myOutput = '<h3>' . $a['title'] . '</h3>' . $myOutput;
          	}
          
              return $myOutput;
          }
          add_shortcode( 'wpPIZZA_additives', 'shortcode_wpPIZZA_additives' );
          
          ?>
          

          greetings
          Benedikt

          #9530
          Olly
          Admin & Mod

            Hi

            i’ve moved this into the user contributions section. maybe it helps someone.

            personally, i would do this differently of course (as i can use the actual wppizza plugin to add things to) but if someone is desperate/needs this then your code above might just be a starting point for whatever it is one wants to do

            i would also add spans rather than br’s for easier more flexible css/output etc , but that’s just by the by and irrelevant here

            in any event, thanks for sharing/posting

            #9572
            Olly
            Admin & Mod

              as of 2.11.8.13 there is now also the following shortcode you could use

              [wppizza type='additives']

              no styling, but plenty of classes to style as you see fit

            Viewing 5 posts - 1 through 5 (of 5 total)
            • The topic ‘shortcode for showadditives’ is closed to new replies.