title: Help to edit the Recent Posts Wordpress widget to diplay in all 3 languages at once
body: <p>Site link: <a href="http://nuestrafrontera.org/wordpress/" rel="noreferrer">http://nuestrafrontera.org/wordpress/</a></p>
  
  <p>I want the feed of recent post titles to show in the sidebar for all 3 languages, separated by language. So, for example, under Recent Posts the sidebar would have "English" and then the latest 3 posts in English, then "Español" and the latest 3 in Spanish and then French. All in a list in the column and appearing on all pages with the sidebar in all languages. </p>
  
  <p>I am using the most current version of Wordpress with the WPML plugin.</p>
  
  <p>I believe the Wordpress widget for Recent Posts needs to be tweaked to do this. Here is the code (from wp-includes/default-widgets.php):</p>
  
  <pre><code>class WP_Widget_Recent_Posts extends WP_Widget {
  
      function WP_Widget_Recent_Posts() {
          $widget_ops = array('classname' =&gt; 'widget_recent_entries', 'description' =&gt; __( "The most recent posts on your blog") );
          $this-&gt;WP_Widget('recent-posts', __('Recent Posts'), $widget_ops);
          $this-&gt;alt_option_name = 'widget_recent_entries';
  
          add_action( 'save_post', array(&amp;$this, 'flush_widget_cache') );
          add_action( 'deleted_post', array(&amp;$this, 'flush_widget_cache') );
          add_action( 'switch_theme', array(&amp;$this, 'flush_widget_cache') );
      }
  
      function widget($args, $instance) {
          $cache = wp_cache_get('widget_recent_posts', 'widget');
  
          if ( !is_array($cache) )
              $cache = array();
  
          if ( isset($cache[$args['widget_id']]) ) {
              echo $cache[$args['widget_id']];
              return;
          }
  
          ob_start();
          extract($args);
  
          $title = apply_filters('widget_title', empty($instance['title']) ? __('Recent Posts') : $instance['title']);
          if ( !$number = (int) $instance['number'] )
              $number = 10;
          else if ( $number &lt; 1 )
              $number = 1;
          else if ( $number &gt; 15 )
              $number = 15;
  
          $r = new WP_Query(array('showposts' =&gt; $number, 'nopaging' =&gt; 0, 'post_status' =&gt; 'publish', 'caller_get_posts' =&gt; 1));
          if ($r-&gt;have_posts()) : ?&gt;
          &lt;?php echo $before_widget; ?&gt;
          &lt;?php if ( $title ) echo $before_title . $title . $after_title; ?&gt;
          &lt;ul&gt;
          &lt;?php  while ($r-&gt;have_posts()) : $r-&gt;the_post(); ?&gt;
          &lt;li&gt;&lt;a href="&lt;?php the_permalink() ?&gt;" title="&lt;?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?&gt;"&gt;&lt;?php if ( get_the_title() ) the_title(); else the_ID(); ?&gt; &lt;/a&gt;&lt;/li&gt;
          &lt;?php endwhile; ?&gt;
          &lt;/ul&gt;
          &lt;?php echo $after_widget; ?&gt;
  &lt;?php
              wp_reset_query();  // Restore global post data stomped by the_post().
          endif;
  
          $cache[$args['widget_id']] = ob_get_flush();
          wp_cache_add('widget_recent_posts', $cache, 'widget');
      }
  
      function update( $new_instance, $old_instance ) {
          $instance = $old_instance;
          $instance['title'] = strip_tags($new_instance['title']);
          $instance['number'] = (int) $new_instance['number'];
          $this-&gt;flush_widget_cache();
  
          $alloptions = wp_cache_get( 'alloptions', 'options' );
          if ( isset($alloptions['widget_recent_entries']) )
              delete_option('widget_recent_entries');
  
          return $instance;
      }
  
      function flush_widget_cache() {
          wp_cache_delete('widget_recent_posts', 'widget');
      }
  
      function form( $instance ) {
          $title = esc_attr($instance['title']);
          if ( !$number = (int) $instance['number'] )
              $number = 5;
  ?&gt;
          &lt;p&gt;&lt;label for="&lt;?php echo $this-&gt;get_field_id('title'); ?&gt;"&gt;&lt;?php _e('Title:'); ?&gt;&lt;/label&gt;
          &lt;input class="widefat" id="&lt;?php echo $this-&gt;get_field_id('title'); ?&gt;" name="&lt;?php echo $this-&gt;get_field_name('title'); ?&gt;" type="text" value="&lt;?php echo $title; ?&gt;" /&gt;&lt;/p&gt;
  
          &lt;p&gt;&lt;label for="&lt;?php echo $this-&gt;get_field_id('number'); ?&gt;"&gt;&lt;?php _e('Number of posts to show:'); ?&gt;&lt;/label&gt;
          &lt;input id="&lt;?php echo $this-&gt;get_field_id('number'); ?&gt;" name="&lt;?php echo $this-&gt;get_field_name('number'); ?&gt;" type="text" value="&lt;?php echo $number; ?&gt;" size="3" /&gt;&lt;br /&gt;
          &lt;small&gt;&lt;?php _e('(at most 15)'); ?&gt;&lt;/small&gt;&lt;/p&gt;
  &lt;?php
      }
  }
  </code></pre>