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.