Ita*_*ges 4 php wordpress plugins 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);
Run Code Online (Sandbox Code Playgroud)
现在,我想知道如何按与语言相关的类别获取帖子?例如,我的新闻类别为英语,Noticias为西班牙语。如何自动设置?
像这样:
$args = array(
......
'category' => **current_category_for_this_language**
......
);
return get_posts($args);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
使用pll_get_term并按类别过滤。在这种情况下,“ 34”是我的学期ID(将鼠标悬停在该学期的编辑链接上即可得到)。
顺便说一下,据我所知,get_posts默认仅获取当前页面语言中的帖子,并且默认获取按日期DESC排序的帖子,因此您可以忽略我认为的查询。
$args = array(
'posts_per_page' => 6,
'category' => pll_get_term(34)
);
return get_posts($args);
Run Code Online (Sandbox Code Playgroud)
资料来源
https://polylang.wordpress.com/documentation/documentation-for-developers/functions-reference/
pll_get_term
返回类别(或帖子标记)翻译
用法:
Run Code Online (Sandbox Code Playgroud)pll_get_term($term_id, $slug);'$ term_id'=>(必填)您要翻译的字词的ID
'$ slug'=>(可选)该语言的2字母代码,默认为当前语言
https://codex.wordpress.org/Template_Tags/get_posts
默认用法
Run Code Online (Sandbox Code Playgroud)<?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 ); ?>