Intereting Posts

Показать 1 сообщение за таксономию с полилангом

Я пытаюсь сделать цикл, где я показываю все свои таксономии с первым постом каждой таксономии. Это "customers" таксономии, и я хочу отображать каждый первый портфель-CPT клиента.

У меня есть полиланг с установленным английским и немецким языками, все работают, а не этот цикл.

Loop работает, но проект всегда получает мне сообщения на английском языке. Независимо от того, на каком языке он установлен.

Вот пастебин, просто чтобы быть понятным, налог с клиента – "kunden" а персонализированный тип сообщения – "portfolio" . "kunden" -tax не переведен, оба языка используют один и тот же. Переводится "portfolio" -cpt.

 <?php get_header() ?> <div class="row" id="main"> <div class="large-12 columns"> <ul class="small-block-grid-3 large-block-grid-6"> <?php $lang = pll_current_language(); $terms = get_terms( 'kunden' ); foreach( $terms as $term ) : $args = array( 'post_type' => 'portfolio', 'kunden' => $term->slug, 'posts_per_page' => 1, 'lang' => $lang, ); $single = new WP_Query( $args ); ?> <?php if ($single->have_posts()) { ?> <?php while ($single->have_posts()) : $single->the_post(); ?> <?php get_template_part('project-thumb'); ?> <?php endwhile; ?> <?php } ?> <?php endforeach; ?> </ul> </div> </div> <?php get_footer() ?> 

Если я изменю post_per_page => 2 немецкий пост станет вторым после английского. Таким образом, оба Языки отображаются один за другим.

Наконец я понял решение. Я думаю, это не идеальный вариант, потому что все сообщения по-прежнему зацикливаются, а неправильный язык просто не отображается, но на данный момент он работает. Я все еще открыт для идей.

Моя идея прямо сейчас – получить язык сообщения и не отображать его, если он не соответствует языку страниц.

Вот новая часть.

 global $polylang; $postlang = $polylang->get_post_language(get_the_ID())->slug; if ($postlang == $lang) { get_template_part('project-thumb'); } 

Полный код теперь выглядит так и работает для меня.

 <?php get_header() ?> <div class="row" id="main"> <div class="large-12 columns"> <ul class="small-block-grid-3 large-block-grid-6"> <?php global $polylang; $lang = pll_current_language(); $terms = get_terms( 'kunden' ); foreach( $terms as $term ) : $args = array( 'post_type' => 'portfolio', 'kunden' => $term->slug, 'posts_per_page' => 2, 'lang' => $lang, ); $single = new WP_Query( $args ); ?> <?php if ($single->have_posts()) { ?> <?php while ($single->have_posts()) : $single->the_post(); ?> <?php $postlang = $polylang->get_post_language(get_the_ID())->slug; ?> <?php if ($postlang == $lang) { get_template_part('project-thumb'); } ?> <?php endwhile; ?> <?php } ?> <?php endforeach; ?> </ul> </div> </div> <?php get_footer() ?>