WPML mit WP_Query für alle 3 Sprachen [geschlossen]

8

Ich habe etwas darüber in den WPML-Support-Foren, aber ich dachte, ich könnte auch hier fragen. Hier sind die wichtigen Informationen: Ich führe ein WP Multisite-Setup mit benutzerdefinierten Beitragstypen, benutzerdefinierten Feldern und benutzerdefinierten Elementen aus. In einer bestimmten Vorlagendatei habe ich eine sekundäre Schleife, die eine Liste von Elementen aus einem anderen Blog abruft. Nach allem, was ich gesammelt habe, sollte alles, was die WP-API verwendet, nur auf die aktuelle Sprache heruntergefiltert werden, aber keine der WP_Query()Funktionen, die ich habe, tut dies.

Relevanter Code:

<?php 
 switch_to_blog(23);
$args = array('post_type' => 'release-notes',
    'suppress_filters' => 0,
    'meta_query' => array(
            array(
                'key' => 'related_products',
                'value' => $thisproduct,
                'compare' => 'LIKE'
            )
        )
    );
$loop = new WP_Query($args);
if ($loop->have_posts()) {
    echo '<h2>Release Notes</h2>';
    while ( $loop->have_posts() ) : $loop->the_post();
        //echo '<pre>';
        //print_r($post);
        //echo '</pre>';
        $post_link = ($post->post_name);
        echo '<p><a class="text-link" href="' . get_permalink() . '">' . get_the_title() . '</a></p>';
    endwhile; // foreach($posts
} // if ($results
restore_current_blog();
?>

Hier gibt es zwei Probleme: Erstens werden Ergebnisse aus jeder Sprache anstelle der aktuellen Sprache zurückgegeben - derselbe Beitrag dreimal (EN, FR, DE). Zweitens ist das Ergebnis von get_permalink()völlig falsch - es spuckt http://www.mysite.com/blog23name/postname anstelle von http://www.mysite.com/blog23name/lang/posttype/postname aus - der benutzerdefinierte Permalink, der auf angezeigt wird die Seite 'Beitrag bearbeiten'.

Irgendwelche Ideen?

SickHippie
quelle
1
IMO, es ist nicht fair, hier Premium-Plugin-Fragen zu stellen ...
brasofilo
"Nicht fair"? Inwiefern? Warum sollte es ein Tag für WPML geben, wenn es hier nicht gefragt werden könnte? Überprüfen Sie die FAQ erneut, Kumpel. Es ist unter der GPL (sogar der Premium-Version) lizenziert, so dass ich technisch gesehen alle relevanten Codeblöcke veröffentlichen kann, damit andere sie zur Fehlerbehebung prüfen können. Das heißt, mindestens eines der Probleme ist ein zentrales WordPress-Problem - switch_to_blog()es werden keine Permalinks für benutzerdefinierte Beitragstypen mit übergangen get_permalink()- was dies zu einem großartigen Ort macht, um danach zu fragen. Vielen Dank für die Ablehnung. Es ist jedoch viel hilfreicher, als eine Antwort auf eine 2 Monate alte Frage zu finden.
SickHippie
Haben sie eine "kostenlose Version"? Wenn sie es tun, tut mir leid, ich war mir nicht bewusst ... Wenn sie es nicht tun, entschuldigt ein Tag keine GPL ...
brasofilo
2
Ja, ich hätte es vor dem Downvoting zur Meta bringen sollen, jetzt kann ich es nicht mehr rückgängig machen. Danke fürs Claryfying, @Bainternet. SickHippie, es sieht so aus, als hätten Sie noch keine Antwort in ihrem Forum. Hoffen Sie, dass eine gute Seele bei der Überarbeitung alter Fragen auf diese stößt und sie positiv bewertet. Mit freundlichen Grüßen und Entschuldigung für den Fehler.
Brasofilo
5
@brasofilo - keine Sorge, Kumpel. Ich war gestern etwas überfordert und entschuldige mich für meine aggressive Haltung. Es war unangebracht und es tut mir sehr leid.
SickHippie

Antworten:

2

Meine Lösung bestand darin, die benutzerdefinierten Beitragstypen auf der Site zu registrieren, von der aus ich sie aufrufe, und sie dann in den WPML-Einstellungen für die Übersetzung festzulegen. Dies ist in WPML -> Übersetzungsverwaltung -> Einrichtung mehrsprachiger Inhalte unten. Ich gehe davon aus, dass es funktioniert, indem WP dazu gebracht wird, die Umschreib- / Übersetzungsregeln dieser Site zu verwenden, wenn es nicht die richtigen Informationen von enthält switch_to_blog().

SickHippie
quelle