valu/wp-graphql-polylang

wp-graphql 的 Polylang 绑定

安装次数: 59,221

依赖: 0

推荐者: 0

安全性: 0

星标: 124

关注者: 3

分支: 20

开放问题: 41

类型:wordpress-plugin


README

通过 Polylang 插件扩展 WPGraphQL 架构,以包含语言数据。

功能

适用于文章和术语(包括自定义术语)

  • 添加 languagetranslations 字段
  • 使用 language 参数进行筛选
  • 在创建和更新突变中设置语言
  • 默认情况下在 API 中显示所有翻译
    • Polylang 修补 WP Query,只列出当前默认语言的项。此插件使 GraphQL API 逆转此行为
  • ACF 选项页面支持

根查询

  • defaultLanguage 获取当前默认语言
  • languages 列出所有配置的语言

菜单

  • 按语言筛选菜单项

有关详细信息,请参阅 GraphiQL 中生成的文档。

示例

展示所有功能的示例

query PolylangExample {
    # Filter pages by language. If not set it defaults to ALL
    pages(where: { language: EN }) {
        nodes {
            title

            # Get language of each page
            language {
                code # Language code
                name # Human readable name of the language
            }

            # Get links to the translates versions of each page
            # This is an array of post objects
            translations {
                title
                link
                language {
                    code
                }
            }
        }
    }

    # Taxonomies such as tags can be filtered like post objects
    tags(where: { language: EN }) {
        nodes {
            name
            language {
                code
                name
            }
        }
    }

    # Get translated version of a given menu
    menuItems(where: { language: EN, location: FOOTER_MENU }) {
        nodes {
            url
        }
    }

    # Get the default language
    defaultLanguage {
        name
        code
    }

    # Get all configured languages
    languages {
        name
        code
    }

    # Get translations for ACF Options Pages.
    # See the section in the README.
    siteSettings(language: EN) {
        siteSettings {
            footerTitle
        }
    }
}

要求

  • PHP 7.2 或更高版本
  • WPGraphQL 0.13.x 或更高版本
  • Polylang 2.6.5 或更高版本
    • 免费版本足够
    • 如果您使用 PRO 版本,则翻译别名等 PRO 功能也将正常工作

安装

如果您使用 composer,您可以从 Packagist 安装它

composer require valu/wp-graphql-polylang

否则,您可以从 Github 克隆它到您的插件中,使用稳定分支

cd wp-content/plugins
git clone --branch stable https://github.com/valu-digital/wp-graphql-polylang.git

ACF 选项页面

除了 WPGraphQL 和 Polylang 插件外,您还需要以下插件

您可以使用 Composer 安装免费插件。您需要启用 WordPress Packagist 存储库。

composer require wp-graphql/wp-graphql-acf wpackagist-plugin/acf-options-for-polylang

在注册选项页面时,您必须传递 show_in_graphqlgraphql_field_name 参数。

acf_add_options_page([
    'page_title' => __('Site settings', 'theme'),
    'menu_title' => __('Site settings', 'theme'),
    'menu_slug' => 'site-settings',
    'capability' => 'manage_options',
    'redirect' => false,
    'show_in_graphql' => true,
    'graphql_field_name' => 'siteSettings'
]);

Slack

您可以在 WPGraphQL Slack#polylang 频道找到我们。

WPML

但我正在使用 WPML 呢?!

rburgst/wp-graphql-wpml

或者您可能想查看迁移文档

https://polylang.pro/how-to-switch-from-wpml-to-polylang/

贡献

查看 CONTRIBUTING.md