WPPizza – A Restaurant Plugin for WordPress › Support › User contributions › shortcode for showadditives
- AuthorPosts
- 28 April, 2015 at 4:26 pm #9481
Is there a shortcode for showadditives?
I want to create a page or widget, where all additives are listed.
Thanks for you support
Benedikt28 April, 2015 at 4:32 pm #9487>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*/ }
29 April, 2015 at 1:15 pm #9527Thank 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
Benedikt29 April, 2015 at 1:35 pm #9530Hi
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
30 April, 2015 at 2:02 am #9572as 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
- AuthorPosts
- The topic ‘shortcode for showadditives’ is closed to new replies.