Videos

Videos von Voten im Parlament und sonstigen Auftritten

Migration, Asyl

Beiträge zum breiten Themenfeld Migrationspolitik, Zuwanderung, Asylpolitik und Grundrechte für MigrantInnen.

Netzpolitik, IT, Web...

Kommentare und interessante Links aus dem Bereich IT, Internet, Netzpolitik etc. Subjektiv und unregelmässig.

Email-Debatte NZZaS

Seit Herbst 2014 führe ich alle 14 Tage eine Email-Debatte mit Gerhard Pfister (CVP) in der NZZaS

Ernährungssouveränität

Das Gegenprojekt zur neoliberalen Landwirtschafts- politik. Fair zu Produzenten, Konsumenten und der Natur.

Home » Blog, Netzpolitik, IT, Web...

WPML und get_posts()

Eingereicht on 31.08.2011 – 15:22

Wordpress Logo

Gesamtschweizerische Kampagnen sind auf mehrsprachige Sites angewiesen. Bei einfacheren Kampagnen setze ich üblicherweise WordPress als CMS ein und habe für die Mehrsprachigkeit WPML lizenziert. Das Problem: Viele moderne Themes nutzen Slider. Und bei denen funktioniert dann oft die sonst fast magische Übersetzungskraft von WPML nicht mehr. Die  Lösung ist aber ganz einfach.

Aktuell nutze ich für eine Kampagne das WP Theme Sight. Für das Menu, für Pages und Posts funktioniert WPML bestens. Es werden nur die Einträge in der jeweiligen Sprache angezeigt. Probleme dagegen gibt’s beim Slider. Da erscheinen alle entsprechend markierten Posts. Deutsch, französisch, italienisch… alles durcheinander.

Nach langer Suche habe ich die einfache Lösung des Problems gefunden. Der Slider (slideshow.php) holt sich seine Posts mit folgendem Code:

    $args = array(
        'meta_key' => 'sgt_slide',
        'meta_value' => 'on',
        'numberposts' => -1,
        );
    $slides = get_posts($args);

Aber get_posts ist standartmässig mit der Option 'suppress_filters' => true konfiguriert. Entsprechend wirken die WPML Filter nicht. Es genügt, hier mit einer zusätzlichen Zeile die Filterunterdrückung auszuschalten:

    $args = array(
        'meta_key' => 'sgt_slide',
        'meta_value' => 'on',
        'numberposts' => -1,
        'suppress_filters' => false,
        );
    $slides = get_posts($args);

Kommentar schreiben

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.