Change code in custom tabbed widget to show random posts instead of recent.
-
Hi!
Im using a custom tabbed widget that shows (popular, recent, comments and tags) but i want to change the recent to show random posts instead.
Havnt had any luck with changing the code :(, can anyone help me change the code to be able to do this?
Website: https://www.quakefitness.com
Code below:
<?php /* * Plugin Name: Custom Tabbed Widget * Plugin URI: https://www.premiumpixels.com * Description: A widget that display popular posts, recent posts, recent comments and tags * Version: 1.0 * Author: Orman Clark * Author URI: https://www.premiumpixels.com */ /* * tabd function to widgets_init that'll lotab our widget. */ add_action( 'widgets_init', 'tz_tab_widgets' ); /* * Register widget. */ function tz_tab_widgets() { register_widget( 'TZ_Tab_Widget' ); } /* * Widget class. */ class tz_tab_widget extends WP_Widget { /* ---------------------------- */ /* -------- Widget setup -------- */ /* ---------------------------- */ function TZ_tab_Widget() { /* Widget settings */ $widget_ops = array( 'classname' => 'tz_tab_widget', 'description' => __('A tabbed widget that display popular posts, recent posts, comments and tags.', 'framework') ); /* Widget control settings */ $control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'tz_tab_widget' ); /* Create the widget */ $this->WP_Widget( 'tz_tab_widget', __('Custom Tabbed Widget', 'framework'), $widget_ops, $control_ops ); } /* ---------------------------- */ /* ------- Display Widget -------- */ /* ---------------------------- */ function widget( $args, $instance ) { global $wpdb; extract( $args ); /* Our variables from the widget settings. */ $title = apply_filters('widget_title', $instance['title'] ); $tab1 = $instance['tab1']; $tab2 = $instance['tab2']; $tab3 = $instance['tab3']; $tab4 = $instance['tab4']; /* Before widget (defined by themes). */ echo $before_widget; /* Display the widget title if one was input (before and after defined by themes). */ if ( $title ) echo $before_title . $title . $after_title; //Randomize tab order in a new array $tab = array(); ?> <div class="tabs"> <div class="tab_wrap"> <ul class="nav"> <li class="first tab_nav_1"><a href="#tabs-1"><?php echo $tab1; ?></a></li> <li class="tab_nav_2"><a href="#tabs-2"><?php echo $tab2; ?></a></li> <li class="tab_nav_3"><a href="#tabs-3"><?php echo $tab3; ?></a></li> <li class="last tab_nav_4"><a href="#tabs-4"><?php echo $tab4; ?></a></li> </ul> <div class="tab" id="tabs-1"> <ul> <?php $popPosts = new WP_Query(); $popPosts->query('caller_get_posts=1&showposts=5&orderby=comment_count'); while ($popPosts->have_posts()) : $popPosts->the_post(); ?> <li> <?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) : /* if post has post thumbnail */ ?> <div class="image"> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('category-thumbnail'); ?></a> </div><!--image--> <?php endif; ?> <div class="details"> <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5> <span class="date"><?php the_time( get_option('date_format') ); ?>, <?php comments_popup_link(__('No comments', 'framework'), __('1 Comment', 'framework'), __('% Comments', 'framework')); ?></span> </div><!--details--> </li> <?php endwhile; ?> <?php wp_reset_query(); ?> </ul> </div><!--tab--> <div class="tab" id="tabs-2"> <ul> <?php $recentPosts = new WP_Query(); $recentPosts->query('caller_get_posts=1&showposts=5'); while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?> <li> <?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) : /* if post has post thumbnail */ ?> <div class="image"> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('category-thumbnail'); ?></a> </div><!--image--> <?php endif; ?> <div class="details"> <h5><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5> <span class="date"><?php the_time( get_option('date_format') ); ?>, <?php comments_popup_link(__('No comments', 'framework'), __('1 Comment', 'framework'), __('% Comments', 'framework')); ?></span> </div><!--details--> </li> <?php endwhile;?> <?php wp_reset_query(); ?> </ul> </div><!--tab--> <div class="tab" id="tabs-3"> <ul> <?php $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_author_email, comment_date_gmt, comment_approved, comment_type, comment_author_url, SUBSTRING(comment_content,1,70) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 5"; $comments = $wpdb->get_results($sql); foreach ($comments as $comment) : ?> <li> <div class="image"> <a href="<?php echo get_permalink($comment->ID); ?>#comment-<?php echo $comment->comment_ID; ?>" title="<?php echo strip_tags($comment->comment_author); ?> <?php _e('on ', 'framework'); ?><?php echo $comment->post_title; ?>"><?php echo get_avatar( $comment, '45' ); ?></a> </div><!--image--> <div class="details"> <h5><a href="<?php echo get_permalink($comment->ID); ?>#comment-<?php echo $comment->comment_ID; ?>" title="<?php echo strip_tags($comment->comment_author); ?> <?php _e('on ', 'framework'); ?><?php echo $comment->post_title; ?>"><?php echo strip_tags($comment->comment_author); ?>: <?php echo strip_tags($comment->com_excerpt); ?></a></h5> </div><!--details--> </li> <?php endforeach; ?> <?php wp_reset_query(); ?> </ul> </div><!--tab--> <div class="tab tab_tags" id="tabs-4"> <?php wp_tag_cloud('largest=12&smallest=12&unit=px'); ?> <?php wp_reset_query(); ?> <div class="clear"></div> </div> </div><!--tab_wrap--> </div><!--tabs--> <?php /* After widget (defined by themes). */ echo $after_widget; } /* ---------------------------- */ /* ------- Update Widget -------- */ /* ---------------------------- */ function update( $new_instance, $old_instance ) { $instance = $old_instance; /* Strip tags to remove HTML (important for text inputs). */ $instance['title'] = strip_tags( $new_instance['title'] ); /* No need to strip tags */ $instance['tab1'] = $new_instance['tab1']; $instance['tab2'] = $new_instance['tab2']; $instance['tab3'] = $new_instance['tab3']; $instance['tab4'] = $new_instance['tab4']; return $instance; } /* ---------------------------- */ /* ------- Widget Settings ------- */ /* ---------------------------- */ /** * Displays the widget settings controls on the widget panel. * Make use of the get_field_id() and get_field_name() function * when creating your form elements. This handles the confusing stuff. */ function form( $instance ) { /* Set up some default widget settings. */ $defaults = array( 'title' => '', 'tab1' => 'Popular', 'tab2' => 'Recent', 'tab3' => 'Comments', 'tab4' => 'Tags', ); $instance = wp_parse_args( (array) $instance, $defaults ); ?> <!-- Widget Title: Text Input --> <p> <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Title:', 'framework') ?></label> <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" /> </p> <!-- tab 1 title: Text Input --> <p> <label for="<?php echo $this->get_field_id( 'tab1' ); ?>"><?php _e('Tab 1 Title:', 'framework') ?></label> <input class="widefat" id="<?php echo $this->get_field_id( 'tab1' ); ?>" name="<?php echo $this->get_field_name( 'tab1' ); ?>" value="<?php echo $instance['tab1']; ?>" /> </p> <!-- tab 2 title: Text Input --> <p> <label for="<?php echo $this->get_field_id( 'link1' ); ?>"><?php _e('Tab 2 Title:', 'framework') ?></label> <input class="widefat" id="<?php echo $this->get_field_id( 'tab2' ); ?>" name="<?php echo $this->get_field_name( 'tab2' ); ?>" value="<?php echo $instance['tab2']; ?>" /> </p> <!-- tab 3 title: Text Input --> <p> <label for="<?php echo $this->get_field_id( 'tab2' ); ?>"><?php _e('Tab 3 Title:', 'framework') ?></label> <input class="widefat" id="<?php echo $this->get_field_id( 'tab3' ); ?>" name="<?php echo $this->get_field_name( 'tab3' ); ?>" value="<?php echo $instance['tab3']; ?>" /> </p> <!-- tab 4 title: Text Input --> <p> <label for="<?php echo $this->get_field_id( 'link2' ); ?>"><?php _e('Tab 4 Title:', 'framework') ?></label> <input class="widefat" id="<?php echo $this->get_field_id( 'tab4' ); ?>" name="<?php echo $this->get_field_name( 'tab4' ); ?>" value="<?php echo $instance['tab4']; ?>" /> </p> <?php } } ?>
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
- The topic ‘Change code in custom tabbed widget to show random posts instead of recent.’ is closed to new replies.