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.