Site-Link in allen drei Sprachen Diplay. So würde zum Beispiel unter Letzte Posts die Seitenleiste "Englisch" haben und dann die letzten 3 Posts in Englisch, dann "Español" und die letzten 3 in Spanisch und dann Französisch. Alle in einer Liste in der Spalte und erscheinen auf allen Seiten mit der Seitenleiste in allen Sprachen.Hilfe des Aktuellen Beiträge Wordpress-Widget bearbeitet auf einmal
Ich verwende die aktuellste Version von Wordpress mit dem WPML-Plugin.
Ich glaube, das Wordpress-Widget für aktuelle Beiträge muss dafür optimiert werden. Hier ist der Code (von 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 als Kategorien verfolgt? Ich bin nicht vertraut mit WPML ... –
Mit WPML kann fast alles durch Sprache definiert werden und für Dinge wie Post/Seiten und Kategorien können Sie angeben, dass eine Kategorie die Übersetzung eines anderen in einer anderen Sprache ist. – CreativEliza