Polylang-用不同的语言将一个帖子显示为三个类别

时间:2018-02-24 作者:Nike555

我使用Plugin Polylang.我需要将一篇帖子显示为3个类别(一个类别,但对于插件polylang需要创建3个不同类别的任何语言),这一点很重要,因为我需要为所有语言创建一篇普通帖子(带有普通评级)。我试过了theme_folder/category.php 之前if ( have_posts() ) : 设置:

$categories = get_the_category();
        $category_id = $categories[0]->cat_ID;
        $posts = get_posts( array(
            \'category\' => pll_get_term($category_id, \'ro\'),
            \'post_type\' => \'post\',
        ) );
没有任何更改。。。以及:

$posts = get_posts( array(
            \'category\'=> $category_id,
            \'post_type\' => \'post\',
            \'lang\' => \'ro\',
        ) );
结果:只有当语言为“ro”时才能正常工作,如果我在站点中更改语言,则只显示空帖子。

谢谢

1 个回复
最合适的回答,由SO网友:mmm 整理而成

要检索类别中所有语言的所有帖子,需要在请求期间取消激活自动翻译
您可以尝试:

$categories = get_the_category();
$category_id = $categories[0]->cat_ID;


remove_filter( \'get_terms_args\', array( PLL()->auto_translate, \'get_terms_args\' ), 10, 2 );


$posts = [];

foreach (pll_languages_list() as $language_code) {

    $posts = array_merge(
        $posts
        ,
        get_posts([
            "category" => pll_get_term($category_id, $language_code),
            "post_type" => "post",
            "lang" => $language_code,
        ])
    );

}

add_filter( \'get_terms_args\', array( PLL()->auto_translate, \'get_terms_args\' ), 10, 2 );

结束

相关推荐

Count posts for pagination

我正在为一个网站分页<;上一页(页码)下一页>很简单,已经完成。但是现在我需要添加一个选择器来直接转到页面(例如:转到第7页),要这样做,我需要知道有多少页面,为此我需要计算在查询中找到了多少帖子。问题是这个网站有太多的帖子(>13.000),查询所有帖子都会减慢页面加载速度,这就像。。。10秒后页面才能加载。显然,这是不可接受的。分页解决了这个问题,因为一次只加载50或100篇文章,但我无法将它们全部计算在内。我可以在不加载的情况下统计某个查询中的帖子吗?或者我可以通过其他方式获得页数吗