使用PolyLang获取文章的类别和语言

问题描述:

我正在创建一个插件,我已经可以通过类别和当前语言使用get_posts()函数从WordPress获取帖子,并将属性lang从pll_current_language() PolyLang。使用PolyLang获取文章的类别和语言

$args = array(
    'posts_per_page' => 6, 
    'orderby'   => 'date', 
    'order'   => 'DESC', 
    'post_type'  => 'post', 
    'post_status'  => 'publish', 
    'lang'    => pll_current_language() 
); 
return get_posts($args); 

现在,我想知道如何通过与语言相关的类别获得帖子? 例如,我有英文新闻类和西班牙新闻类。我怎样才能自动设置?

事情是这样的:

$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' 你要翻译的名词=>(必需)ID

'$鼻涕虫'=>语言(可选)2字母代码,默认为当前语言

https://codex.wordpress.org/Template_Tags/get_posts

默认使用

<?php $args = array(
    'posts_per_page' => 5, 
    'offset'   => 0, 
    'category'   => '', 
    'category_name' => '', 
    'orderby'   => 'date', 
    'order'   => 'DESC', 
    'include'   => '', 
    'exclude'   => '', 
    'meta_key'   => '', 
    'meta_value'  => '', 
    'post_type'  => 'post', 
    'post_mime_type' => '', 
    'post_parent'  => '', 
    'author'  => '', 
    'author_name'  => '', 
    'post_status'  => 'publish', 
    'suppress_filters' => true 
); 
$posts_array = get_posts($args); ?> 
+0

无法更好地解释!非常感谢Joris! –