【问题标题】:Get posts by category and language, using PolyLang使用 PolyLang 按类别和语言获取帖子
【发布时间】:2017-11-24 03:32:57
【问题描述】:

我正在创建一个插件,我已经可以使用 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);

有什么想法吗?

【问题讨论】:

    标签: php wordpress plugins polylang


    【解决方案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

    ‘$slug’ => (可选) 语言的两字母代码,默认为当前语言

    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 ); ?>
    

    【讨论】:

    • 无法更好地解释!非常感谢,乔里斯!
    • 很好的解决方案,它对我的​​自定义分类有很大帮助'tax_query' =&gt; array(array('taxonomy' =&gt; 'taxonomy-slug', 'field' =&gt; 'term_id', 'terms' =&gt; pll_get_term(34)))
    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    相关资源
    最近更新 更多