Hilfe zum Bearbeiten des Letzten Posts WordPress widget zur Anzeige in allen 3 Sprachen auf einmal

Site link: http://nuestrafrontera.org/wordpress/

Ich soll das Futter von der letzten post-Titel, um zu zeigen, in der Seitenleiste für alle 3 Sprachen, getrennt nach Sprache. So, zum Beispiel, unter den Letzten Posts in der sidebar hätte, "Englisch" und dann die letzten 3 Beiträge in Englisch, dann "Español" und die neuesten 3-in Spanisch und dann Französisch. Alle in eine Liste in die Spalte und erscheinen auf allen Seiten mit der Seitenleiste in allen Sprachen.

Ich verwende die aktuelle version von WordPress mit dem WPML plugin.

Glaube ich, dass die WordPress-widget für die Letzten Posts muss optimiert werden, dies zu tun. Hier ist der code (aus wp-includes/default-widgets.php):

class WP_Widget_Recent_Posts extends WP_Widget {

    function WP_Widget_Recent_Posts() {
        $widget_ops = array('classname' => 'widget_recent_entries', 'description' => __( "The most recent posts on your blog") );
        $this->WP_Widget('recent-posts', __('Recent Posts'), $widget_ops);
        $this->alt_option_name = 'widget_recent_entries';

        add_action( 'save_post', array(&$this, 'flush_widget_cache') );
        add_action( 'deleted_post', array(&$this, 'flush_widget_cache') );
        add_action( 'switch_theme', array(&$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 < 1 )
            $number = 1;
        else if ( $number > 15 )
            $number = 15;

        $r = new WP_Query(array('showposts' => $number, 'nopaging' => 0, 'post_status' => 'publish', 'caller_get_posts' => 1));
        if ($r->have_posts()) : ?>
        <?php echo $before_widget; ?>
        <?php if ( $title ) echo $before_title . $title . $after_title; ?>
        <ul>
        <?php  while ($r->have_posts()) : $r->the_post(); ?>
        <li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?> </a></li>
        <?php endwhile; ?>
        </ul>
        <?php echo $after_widget; ?>
<?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->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;
?>
        <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 $title; ?>" /></p>

        <p><label for="<?php echo $this->get_field_id('number'); ?>"><?php _e('Number of posts to show:'); ?></label>
        <input id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" type="text" value="<?php echo $number; ?>" size="3" /><br />
        <small><?php _e('(at most 15)'); ?></small></p>
<?php
    }
}
Sind die verschiedenen Sprachen verfolgt, da Kategorien? Ich bin nicht vertraut mit WPML...
Mit WPML, kann fast alles sein, definiert durch Sprache und für Dinge wie post/Seiten und Kategorien, die Sie können angeben, dass eine Kategorie ist die übersetzung von einem anderen in einer anderen Sprache.

InformationsquelleAutor CreativEliza | 2009-10-23

Schreibe einen Kommentar