UPDATE:
I have this widget that allows me to CHOOSE and SHOW the latest posts from a specific category in the sidebar. Here's the code;
add_action( 'widgets_init', 'tie_categort_posts_widget' );
function tie_categort_posts_widget() {
register_widget( 'tie_categort_posts' );
}
class tie_categort_posts extends WP_Widget {
function tie_categort_posts() {
$widget_ops = array( 'classname' => 'categort-posts' );
$control_ops = array( 'width' => 250, 'height' => 350, 'id_base' => 'categort-posts-widget' );
$this->WP_Widget( 'categort-posts-widget',theme_name .' - Category Posts', $widget_ops, $control_ops );
}
function widget( $args, $instance ) {
extract( $args );
$title = apply_filters('widget_title', $instance['title'] );
$no_of_posts = $instance['no_of_posts'];
$cats_id = $instance['cats_id'];
$thumb = $instance['thumb'];
echo $before_widget;
echo $before_title;
echo $title ; ?>
<?php echo $after_title; ?>
<ul>
<?php tie_last_posts_cat($no_of_posts , $thumb , $cats_id)?>
</ul>
<div class="clear"></div>
<?php
echo $after_widget;
}
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['title'] = strip_tags( $new_instance['title'] );
$instance['no_of_posts'] = strip_tags( $new_instance['no_of_posts'] );
$instance['cats_id'] = implode(',' , $new_instance['cats_id'] );
$instance['thumb'] = strip_tags( $new_instance['thumb'] );
return $instance;
}
function form( $instance ) {
$defaults = array( 'title' =>__( 'Category Posts' , 'tie'), 'no_of_posts' => '5' , 'cats_id' => '1' , 'thumb' => 'true' );
$instance = wp_parse_args( (array) $instance, $defaults );
$categories_obj = get_categories();
$categories = array();
foreach ($categories_obj as $pn_cat) {
$categories[$pn_cat->cat_ID] = $pn_cat->cat_name;
}
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>">Title : </label>
<input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" class="widefat" type="text" />
</p>
<p>
<label for="<?php echo $this->get_field_id( 'no_of_posts' ); ?>">Number of posts to show: </label>
<input id="<?php echo $this->get_field_id( 'no_of_posts' ); ?>" name="<?php echo $this->get_field_name( 'no_of_posts' ); ?>" value="<?php echo $instance['no_of_posts']; ?>" type="text" size="3" />
</p>
<p>
<?php $cats_id = explode ( ',' , $instance['cats_id'] ) ; ?>
<label for="<?php echo $this->get_field_id( 'cats_id' ); ?>">Category : </label>
<select multiple="multiple" id="<?php echo $this->get_field_id( 'cats_id' ); ?>[]" name="<?php echo $this->get_field_name( 'cats_id' ); ?>[]">
<?php foreach ($categories as $key => $option) { ?>
<option value="<?php echo $key ?>" <?php if ( in_array( $key , $cats_id ) ) { echo ' selected="selected"' ; } ?>><?php echo $option; ?></option>
<?php } ?>
</select>
</p>
<p>
<label for="<?php echo $this->get_field_id( 'thumb' ); ?>">Display Thumbinals : </label>
<input id="<?php echo $this->get_field_id( 'thumb' ); ?>" name="<?php echo $this->get_field_name( 'thumb' ); ?>" value="true" <?php if( $instance['thumb'] ) echo 'checked="checked"'; ?> type="checkbox" />
</p>
<?php
}
}
Any suggestions on what to edit so that I will be able to "CHOOSE and SHOW random posts from a specific TAG" instead of the latest posts from a category?
UPDATE:
Here is the accompanying code, found inside functions.php, which is used by the widget above:
function tie_last_posts_cat($numberOfPosts = 5 , $thumb = true , $cats = 1){
global $post;
$orig_post = $post;
$lastPosts = get_posts('category='.$cats.'&no_found_rows=1&suppress_filters=0&numberposts='.$numberOfPosts);
foreach($lastPosts as $post): setup_postdata($post);
Basically, here is what I'm trying to achieve:
I was able to turn it to a TAGS widget but I can't seem to figure out how to get the tags to show on the list. Again, help is deeply appreciated.