我有这样的问题。在我的WordPress网站上,我使用WPML。我有几类帖子。对于每个类别,我都有一个页面模板,这不是category.php。为了使用分页显示页面上的所有帖子,我使用WP_Query。它看起来像这样。
...
<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$query = new WP_Query( array(
'cat' => 41,
'posts_per_page' => 10,
'paged' => $paged
));
?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<?php get_template_part('template-parts/content', 'record', get_post_format()); ?>
<?php endwhile; ?>
<?php
echo paginate_links( array(
'base' => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
'total' => $query->max_num_pages,
'current' => max( 1, get_query_var( 'paged' ) ),
'format' => '?paged=%#%',
'show_all' => false,
'type' => 'plain',
'end_size' => 1,
'mid_size' => 2,
'prev_next' => true,
'prev_text' => '<svg class=\'pagination__previous\'><use xlink:href=' . get_template_directory_uri() . '/img/svg/sprite.svg#menu__arrow' . ' ></use></svg>',
'next_text' => '<svg class=\'pagination__next\'><use xlink:href=' . get_template_directory_uri() . '/img/svg/sprite.svg#menu__arrow' . ' ></use></svg>',
'add_args' => false,
'add_fragment' => '',
));
?>
<?php wp_reset_postdata(); ?>
...
所以cat = 41是一个类别的ID。在默认的RU语言中,帖子按预期显示。但是当我切换到其他语言EN或UK(在我的情况下)时,带有帖子的页面是空的。你能告诉我如何解决它吗?
答案 0 :(得分:0)
尝试抑制过滤器没有测试它但它会有所帮助。
$query = new WP_Query( array(
'cat' => 41,
'posts_per_page' => 10,
'paged' => $paged
'suppress_filters' => false,
));
答案 1 :(得分:0)
我找到了解决方案。但它看起来很奇怪。不需要suppress_filters。当我选择cat 41时,仅选择默认语言,不显示其他语言。但是如果我将选择44(相同的类别,但使用非默认语言)。我的意思是默认俄语中的类别“新闻”有ID 41(slug:news-ru),这个英语类别有ID 44(slug:news-en)。所以,如果我选择44,一切正常。当我处于默认状态时,将显示默认的帖子。当我切换到英语时,帖子用英语显示更多))当我切换到乌克兰语(slug:news-uk,ID:49)时,第三语言所有帖子都以乌克兰语显示。魔法?有没有人解释?