用于自定义分类的Polylang中的过滤器语言

时间:2021-08-09 作者:JCV

我正在尝试按语言筛选自定义分类法。为了实现这一点,我使用带有以下参数的WP\\u Query类:

                $args = array(
                    \'post_type\'      => [\'post\', \'page\'],
                    \'post_status\'    => \'publish\',
                    \'lang\'    => $language,
                    \'tax_query\' => array(
                        array(
                            \'taxonomy\' => $taxonomy_custom_category,
                            \'field\'    => \'name\',
                            \'terms\'    => $taxonomy_term,
                        ),
                    ),
                );
其中$language是检索到的语言之一pll_languages_list().

但是,除了默认语言之外,查询结果始终为空。是否有任何方法可以使用按语言过滤的多段语言构建表单,以返回自定义分类法的正确结果?

1 个回复
SO网友:JCV

没关系,我终于找到了。这并没有文档记录,但通过使用Polylang代码,我找到了一种方法。

首先使用检索语言及其分类id

$lang = get_terms(\'term_language\', [\'hide_empty\' => false])
它给出了一个对象,可以称为$lang->name$lang->term_id.

然后,wp\\u查询应如下所示:

                $args = array(
                    \'post_type\'      => [\'post\', \'page\'],
                    \'post_status\'    => \'publish\',
                    \'numberposts\' => -1,
                    \'nopaging\'    => true,
                    \'tax_query\' => array(
                        \'relation\' => \'AND\',
                        array(
                            \'taxonomy\' => $taxonomy_custom_category,
                            \'field\'    => \'name\',
                            \'terms\'    => $taxonomy_term,
                        ),
                        array(
                            \'taxonomy\' => \'language\',
                            \'field\'    => \'term_taxonomy_id\',
                            \'terms\'    => $lang->term_id,
                        ),
                    ),
                );

从那里,很容易构建一个表单或任何你想要插件做的事情。

我知道这有点离题,但这些信息在任何地方都无法获得。尽管如此,我还是发现许多插件开发人员像我一样陷入困境。

相关推荐

multi-language WordPress site

我正在制作由WordPress支持的多语言网站。WPML 不是免费的,而且它对数据库进行了太多额外的sql查询,所以对于我的站点来说,这不是一个好的解决方案。qTranslate 将所有语言保存在一个数据库行中,以后移动到另一个多语言插件非常复杂。<?php _e( \'<!--:en-->english text<!--:--><!--:de-->german text<!--:-->\' ); ?> xLanguage 两年多没有更新