WPML

WPMLには使いやすい言語スイッチャーが用意されていますが、すべてのページに表示したくない場合もあります。特定のページでのみ表示または非表示にする方法について説明します。

数行のCSSを追加するだけで簡単に実現できます。

特定のページでの言語スイッチャーの表示

ステップ1:すべてのページでの言語スイッチャーの非表示

まず、言語スイッチャーが使用しているクラスを確認する必要があります。

これはブラウザの開発者ツールを使用して確認できます。

  1. フロントエンドでサイトにアクセスし、キーボードのF12キーを押します。
  2. 「検証」ツールを使用して言語スイッチャーを選択すると、そのHTMLマークアップが表示されます。
ブラウザの開発者ツールで言語スイッチャーのクラスを確認

言語スイッチャーの一般的な2つのクラスは以下のとおりです。

  • スイッチャーがメニューに表示される場合のwpml-ls-menu-itemクラス
  • スイッチャーがフッターに表示される場合のwpml-lsクラス

正しいクラスがわかったら、外観 → カスタマイズページに移動し、追加のCSSをクリックして、以下のCSSをウェブサイトに追加します。

メニュー言語スイッチャーの非表示
/*Hide menu Language Switcher*/
.wpml-ls-menu-item {
	visibility: hidden !important;
}

/*Hide footer Language Switcher*/
.wpml-ls {
	visibility: hidden  !important;
}

これにより、すべてのページで言語スイッチャーが非表示になります。

または、これらのスタイルルールをテーマのstyle.cssファイルに追加することもできますが、必ず子テーマを使用してください。そうしないと、テーマを更新したときにカスタムスタイルが失われます。

言語スイッチャーのCSSクラスの詳細については、言語スイッチャーのCSSスタイルに関するページをご覧ください。

ステップ2:特定のページでの言語スイッチャーの表示

次のステップでは、目的のページにのみ言語スイッチャーを表示するために、別のCSSスニペットを追加する必要があります。

WordPressは各ページのbodyタグに特定のクラスを自動的に追加します。これを利用すれば、特定のページの言語スイッチャーだけを指定できます。

クラスを確認するには、言語スイッチャーを表示したいページをフロントエンドで開きます。ここでもブラウザの検証ツールを使用して、bodyタグを探します。

次のように表示されます。

idクラスの検索
<body class="page-template-default page page-id-2 logged-in admin-bar wp-embed-responsive is-light-theme singular has-main-navigation customize-support">

この場合、page-id-2クラスはこの特定のページにのみ追加されます。この数字はページのIDを表しており、これを使用してスニペットを作成できます。

完全なスニペットは次のようになります。

メニュー言語スイッチャーの非表示 – 完全版
/*Hide menu Language Switcher*/
.wpml-ls-menu-item {
	visibility: hidden !important;
}

/*Hide footer Language Switcher*/
.wpml-ls {
	visibility: hidden  !important;
}

/*Display Language Switcher only in the page with ID 2*/
body.page-id-2 .wpml-ls-menu-item {
	visibility: visible !important;
}

body.page-id-2 .wpml-ls {
	visibility: visible !important;
}

page-id-2クラスをページのクラスに置き換えることを忘れないでください。

使用できる特定のクラスの例をいくつか示します。

  • page-id-X: ページに使用(XをページのIDに置き換えます)
  • postid-X: 投稿に使用(Xを投稿のIDに置き換えます)
  • home: ホームページに使用
  • single-post: すべての投稿に使用(特定の投稿ではありません)
  • page: すべてのページに使用(特定のページではありません)

特定のページでの言語スイッチャーの非表示

特定のページで言語スイッチャーを非表示にする方法は、前のステップと非常によく似ています。ただし、すべてのページで非表示にするのではなく、特定のページでのみ非表示にします。

そのためには、ページ固有のクラスを調べ、それを使って該当ページの言語スイッチャーを非表示にするだけです。

CSSスニペットは次のようになります。

IDが2のページでのみ言語スイッチャーを非表示
/*Hide Language Switcher only on the page with ID 2*/

/*Menu Language Switcher*/
body.page-id-2 .wpml-ls-menu-item {
	visibility: hidden !important;
}
/*Footer Language Switcher*/
body.page-id-2 .wpml-ls {
	visibility: hidden !important;
}

page-id-2クラスを特定のクラスに置き換えることを忘れないでください。

執筆者:Diego Pereira · 最終更新日:2024年10月18日