WPML com WP_Query atendendo todos os 3 idiomas [fechado]


8

Eu tenho algo sobre isso nos fóruns de suporte do WPML, mas achei que poderia perguntar aqui também. Aqui estão as informações importantes: Estou executando uma instalação WP Multisite com tipos de postagem personalizados, campos personalizados, tudo o que parece personalizado. Em um arquivo de modelo específico, eu tenho um loop secundário que extrai uma lista de itens de um blog diferente. Pelo que pude reunir, qualquer coisa usando a API do WP deve ser filtrada apenas para o idioma atual, mas nenhuma das WP_Query()funções que eu tenho está fazendo isso.

Código relevante:

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

O problema aqui é duplo: primeiro, ele retorna resultados de todos os idiomas, em vez do idioma atual - o mesmo post, três vezes (EN, FR, DE). Segundo, o resultado de get_permalink()está completamente errado - está cuspindo http://www.mysite.com/blog23name/postname em vez de http://www.mysite.com/blog23name/lang/posttype/postname - o link permanente personalizado mostrado em a página "editar postagem".

Alguma ideia?


11
IMO, não é justo pedir prémio plug-in perguntas aqui ...
brasofilo

"Não é justo"? De que maneira? Por que haveria uma tag para o WPML se não pudesse ser solicitada aqui? Verifique o FAQ novamente, companheiro. Ele está licenciado sob a GPL (mesmo a versão premium), para que tecnicamente eu possa postar quaisquer trechos de código relevantes para que outras pessoas procurem a solução de problemas. Dito isso, pelo menos um dos problemas é um problema central do WordPress - switch_to_blog()não passa permalinks para tipos de post personalizados com get_permalink()- tornando este um ótimo lugar para perguntar sobre isso. Obrigado pelo voto negativo, no entanto, é muito mais útil do que realmente encontrar uma resposta para uma pergunta de dois meses.
SickHippie

Eles têm uma "versão gratuita"? Se eles fizerem isso, desculpe, eu não estava ciente ... Se não, ter um Tag não é desculpa para qualquer GPL ...
brasofilo

2
Sim, eu deveria ter levado para o Meta antes da votação, agora não posso desfazê-lo. Obrigado por claryfying, @Bainternet. SickHippie, parece que você ainda não recebeu uma resposta no fórum deles, espero que tenha uma boa alma, ao revisar perguntas antigas, tropeçar nessa e vomitar. Atenciosamente e desculpe pelo erro.
Brasjilo

5
@brasofilo - não se preocupe, companheiro. Ontem fiquei um pouco estressado e peço desculpas pela minha atitude agressiva. Foi desnecessário e lamento muito.
SickHippie

Respostas:


2

Minha solução foi registrar os tipos de postagem personalizados no site de onde estou ligando e, nas configurações do WPML, defina-os para tradução. Isso está em WPML -> Translation Management -> Multilingual Content Setup, na parte inferior. Presumo que ele funcione, enganando o WP a usar as regras de reescrita / conversão desse site quando ele não tiver as informações apropriadas switch_to_blog().

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.