WPML: wp_query() gibt Beiträge in allen Sprachen zurück und nicht nur in der aktuellen

Lesezeit: 1 Minute

Benutzer-Avatar
Drake035

Egal, ob ich es von meiner Seite in der französischen Version oder in der englischen Version verwende, wp_query() gibt meine benutzerdefinierten Beitragstypen in allen Sprachen zurück, nicht nur in der aktuellen. Get_posts() macht das auch.

Wenn ich meine Seite auf Französisch besuche, möchte ich, dass sie nur CPTs in der aktuellen Sprache zurückgeben. Wie erreicht man das?

Beim Benutzen get_posts()einstellen suppress_filters zu FALSCH:

$myPosts = get_posts(array(
    'suppress_filters' => false
));

http://codex.wordpress.org/Function_Reference/get_posts#Parameters

Das ist der beste Weg, den ich gefunden habe, um Posts in einer bestimmten Sprache mit WPML abzurufen …

In meinem Fall muss ich einen Beitrag anhand seines Titels in einer bestimmten Sprache finden und die ID des Beitrags zurückgeben:

$lang='en';
$title="The title you are searching!";

    function getWpIdByTitle($title, $lang){
        global $sitepress;
        // WPML Super power language switcher...
        $sitepress->switch_lang( $lang );
        $args = array(
          'title'        => $title,
          'post_type'   => 'your-post-type', // Default: post
          'post_status' => 'publish',
          'suppress_filters' => false,
          'numberposts' => 1
        );
        $wp_query = new WP_Query( $args );
        return $wp_query->post->ID;
    }

Sie können $wp_query->post als Ergebnis des Abrufs verwenden und die Echos von Titel, Inhalt usw. ausführen.

Auf diese Weise müssen Sie die nicht verwenden

do_action( 'wpml_set_element_language_details', $set_language_args );

Ihre Sprachbeiträge zu verbinden, weder die

icl_object_id(1,'post',false,ICL_LANGUAGE_CODE);

um die ID eines Beitrags in einer bestimmten Sprache zu erhalten.

1299700cookie-checkWPML: wp_query() gibt Beiträge in allen Sprachen zurück und nicht nur in der aktuellen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy