WPML avec WP_Query desservant les 3 langues [fermé]


8

J'ai quelque chose à ce sujet sur les forums de support WPML, mais je me suis dit que je pouvais aussi demander ici. Voici les informations importantes: j'exécute une configuration WP Multisite avec des types de publication personnalisés, des champs personnalisés, personnalisé tout ce qu'il semble. Dans un fichier de modèle particulier, j'ai une boucle secondaire qui extrait une liste d'éléments d'un blog différent. D'après ce que j'ai rassemblé, tout ce qui utilise l'API WP doit être filtré uniquement dans la langue actuelle, mais aucune des WP_Query()fonctions que je possède ne le fait.

Code pertinent:

<?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();
?>

Le problème ici est double: premièrement, il renvoie les résultats de chaque langue au lieu de la langue actuelle - le même message, trois fois (EN, FR, DE). Deuxièmement, le résultat de get_permalink()est complètement faux - il crache http://www.mysite.com/blog23name/postname au lieu de http://www.mysite.com/blog23name/lang/posttype/postname - le permalien personnalisé affiché sur la page "modifier le message".

Des idées?


1
IMO, il n'est pas juste de poser des questions sur les plugins premium ici ...
brasofilo

"Pas juste"? De quelle manière? Pourquoi y aurait-il une balise pour WPML si elle ne pouvait pas être demandée ici? Vérifiez à nouveau la FAQ, mon pote. Il est sous licence GPL (même la version premium), donc techniquement, je pourrais poster des morceaux de code pertinents pour que d'autres puissent les consulter pour le dépannage. Cela dit, au moins l'un des problèmes est un problème principal de WordPress - switch_to_blog()ne passe pas sur les permaliens pour les types de publication personnalisés get_permalink()- ce qui en fait un excellent endroit pour poser des questions à ce sujet. Merci pour le downvote, cependant, c'est beaucoup plus utile que de trouver une réponse à une question vieille de 2 mois.
SickHippie

Ont-ils une "version gratuite"? S'ils le font, désolé, je n'étais pas au courant ... S'ils ne le font pas, avoir un Tag n'excuse aucune GPL ...
brasofilo

2
Oui, j'aurais dû l'apporter au Meta avant de voter, maintenant je ne peux pas l'annuler. Merci pour claryfying, @Bainternet. SickHippie, on dirait que vous n'avez pas encore de réponse sur leur forum, espérez une bonne âme, tout en révisant de vieilles questions, tombez sur celle-ci et votez pour. Cordialement et désolé pour l'erreur.
brasofilo

5
@brasofilo - pas de soucis, mon pote. J'ai été un peu stressé hier et je m'excuse pour mon attitude agressive. Cela n'était pas nécessaire et je suis vraiment désolé.
SickHippie

Réponses:


2

Ma solution a été d'enregistrer les types de publication personnalisés sur le site d'où je l'appelle, puis dans les paramètres de WPML de les définir pour traduire. C'est dans WPML -> Gestion de la traduction -> Configuration du contenu multilingue, en bas en bas. Je suppose que cela fonctionne en incitant WP à utiliser les règles de réécriture / traduction de ce site lorsqu'il ne dispose pas des informations appropriées switch_to_blog().

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.