WPML с WP_Query обслуживает все 3 языка [закрыто]

8

У меня есть кое-что об этом на форумах поддержки WPML, но я подумал, что могу спросить и здесь. Вот важная информация: я запускаю настройку WP Multisite с пользовательскими типами записей, пользовательскими полями, пользовательскими настройками - все, что кажется. В конкретном файле шаблона у меня есть вторичный цикл, который извлекает список элементов из другого блога. Из того, что я понял, все, что использует WP API, должно быть отфильтровано только до текущего языка, но ни одна из WP_Query()функций, которые у меня есть, не выполняет этого.

Соответствующий код:

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

Проблема здесь двоякая: во-первых, он возвращает результаты с каждого языка вместо текущего языка - один и тот же пост, три раза (EN, FR, DE). Во-вторых, результат get_permalink()полностью неверен - он выплевывает http://www.mysite.com/blog23name/postname вместо http://www.mysite.com/blog23name/lang/posttype/postname - пользовательскую постоянную ссылку, показанную на страница «Редактировать пост».

Любые идеи?

SickHippie
источник
1
ИМО, здесь нечестно задавать вопросы о
плагинах
"Не честно"? В каком смысле? Зачем нужен тег для WPML, если его здесь нельзя спросить? Проверьте FAQ снова, приятель. Он лицензирован под лицензией GPL (даже премиум-версии), поэтому технически я мог бы публиковать любые соответствующие куски кода, чтобы другие могли их найти для устранения неполадок. Тем не менее, по крайней мере, одна из проблем является основной проблемой WordPress - switch_to_blog()она не пропускает постоянные ссылки для пользовательских типов записей, get_permalink()что делает это отличным местом для обсуждения. Спасибо за отрицательное голосование, однако, это намного более полезно, чем на самом деле придумать ответ на двухмесячный вопрос.
SickHippie
У них есть "бесплатная версия"? Если они делают, извините, я не знал ... Если они не делают, наличие тега не оправдывает GPL ...
brasofilo
2
Да, я должен был отнести его в Мета до понижения, теперь я не могу отменить его. Спасибо за замечание, @Bainternet. SickHippie, похоже, у вас еще нет ответа на их форуме, надеюсь, что какая-то добрая душа, пересматривая старые вопросы, натыкается на этот и одобряет его. С наилучшими пожеланиями и извините за ошибку.
brasofilo
5
@brasofilo - не беспокойся, приятель. Я был немного переутомлен вчера и извиняюсь за свое агрессивное отношение. Это было неуместно, и мне очень жаль.
SickHippie

Ответы:

2

Мое решение состояло в том, чтобы зарегистрировать пользовательские типы сообщений на сайте, с которого я их вызываю, а затем в настройках WPML установите их для перевода. Это в WPML -> Управление переводами -> Настройка многоязычного контента, внизу. Я предполагаю, что это работает, обманывая WP в использовании правил переписывания / перевода этого сайта, когда на нем нет нужной информации switch_to_blog().

SickHippie
источник