2017-06-21 65 views
3

我正在創建一個插件,我已經可以通過類別和當前語言使用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); 

任何想法?

回答

1

使用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! –

相關問題