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?
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.