使用 PolyLang 按类别和语言获取帖子
问题:使用 PolyLang 按类别和语言获取帖子
我正在创建一个插件,我已经可以使用 WordPress 的 get_posts() 函数按类别和当前语言获取帖子,并使用 PolyLang 的 pll_current_language() 传递属性 lang。
$args = array(
'posts_per_page' => 6,
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'lang' => pll_current_language()
);
return get_posts($args);
现在,我想知道如何按与语言相关的类别获取帖子?例如,我有英语的新闻类别和西班牙语的 Noticias。如何自动设置?
像这样的东西:
$args = array(
......
'category' => **current_category_for_this_language**
......
);
return get_posts($args);
有任何想法吗?
解答
使用 pll_get_term 并按类别过滤。在这种情况下,“34”是我的术语 ID(通过悬停术语的编辑链接获得)。
顺便说一句,据我所知,get_posts 默认情况下仅获取当前页面语言的帖子,并且默认情况下它会获取按日期 DESC 排序的帖子,因此我认为您可以从查询中省略这些内容。
$args = array(
'posts_per_page' => 6,
'category' => pll_get_term(34)
);
return get_posts($args);
来源
https://polylang.wordpress.com/documentation/documentation-for-developers/functions-reference/
pll_get_term
返回类别(或帖子标签)翻译
用法:
pll_get_term($term_id, $slug);
'$term_id' u003d> (必填)您要翻译的术语的 id
‘$slug’ u003d> (可选) 语言的 2 字母代码,默认为当前语言
https://codex.wordpress.org/Template_Tags/get_posts
默认用法
<?php $args u003d 数组(
'posts_per_page' u003d> 5,
'偏移' u003d> 0,
'类别' u003d> '',
'category_name' u003d> '',
'orderby' u003d> '日期',
'订单' u003d> 'DESC',
'包括' u003d> '',
'排除' u003d> '',
'meta_what' u003d> '',
'元值' u003d> '',
'post_type' u003d> '发布',
'post_mime_type' u003d> '',
'post_parent' u003d> '',
'作者' u003d> '',
'作者姓名' u003d> '',
'post_status' u003d> '发布',
'suppress_filters' u003d> 真
);
$posts_array u003d get_posts($args); ?>
更多推荐
所有评论(0)