タグアーカイブ WordPressトラブル

Yoast SEOとLearnDashの競合でコースが表示されないときの解決策

Yoast SEOとLearnDashの競合でコースが表示されないときの解決策

LearnDash 5.1.8 と Yoast SEO を同じサイトで動かすと、コースやレッスンの本文領域が空白になり、マークアップも生成されなくなる問題は、Yoast SEO の解析エンジンが LearnDash のコンテンツ出力に干渉しているのが原因だ。Yoast SEO 側の設定で特定の投稿タイプの解析を無効化するか、LearnDash を最新バージョンに更新すれば回避できる。

なぜ Yoast SEO と LearnDash で本文が消えるのか

なぜ Yoast SEO と LearnDash で本文が消えるのか

この不具合は、両プラグインが吐き出す HTML の構造やフックの衝突に起因する。Yoast SEO はコンテンツ解析のために内部で出力バッファを操作し、記事本文の前後に独自の HTML コメントや隠し div を挿入する。一方 LearnDash はコースやレッスンを表示する際に、独自のテンプレート階層とコンテンツフィルターを使って本文を組み立てる。この組み合わせで、Yoast SEO の解析プロセスが LearnDash のメインコンテンツ領域のレンダリングを途中で止めてしまい、結果的に空の div だけが出力される状態になる。

多くのケースでは、PHP のエラーログにもブラウザのコンソールにもエラーは出力されない。この「痕跡のない空白」がトラブルシューティングを難しくしている。問題が表面化するのは、LearnDash が 5.1.8 にアップデートされ、かつ Yoast SEO がバージョン 21 系や 22 系など新しいエンジンを搭載した組み合わせだ。同様の競合は LearnDash のサポートフォーラムでも複数報告されており、開発チームも認識している。

Before(競合発生時)
コースページの本文エリアが空白で、HTML ソースにも <div class=”learndash-wrapper”> 以降に何もない
After(競合解消後)
本文が正しく表示され、レッスンコンテンツやコース概要が読み込まれる
競合状態  解消後

上図は典型的な症状の遷移を表している。次項から実際の修正手順を説明する。

設定変更で競合を解消する 3 つの手順

設定変更で競合を解消する 3 つの手順
STEP 1 Yoast SEO の「検索アピアランス」設定を開く
STEP 2 「コンテンツタイプ」タブで LearnDash の投稿タイプを探す
STEP 3 SEO 解析と読みやすさ解析を「オフ」にして保存

手順の詳細は以下のとおりだ。この操作に FTP やコード編集は不要で、管理画面の中だけで完結する。

Yoast SEO の検索アピアランスを開く

WordPress 管理画面の左メニューから「Yoast SEO」→「検索アピアランス」へ進む。ここでサイト全体の表示設定と、カスタム投稿タイプごとの解析可否を管理できる。

コンテンツタイプタブで LearnDash 項目を無効化する

「検索アピアランス」画面の上部には「一般」「コンテンツタイプ」「メディア」「タクソノミー」「アーカイブ」などのタブが並んでいる。「コンテンツタイプ」をクリックすると、登録されているすべての投稿タイプが一覧表示される。ここで LearnDash に該当する Courses(sfwd-courses)Lessons(sfwd-lessons)Topics(sfwd-topic)Quizzes(sfwd-quiz) などの項目を探す。各項目の右側にある「Yoast SEO の分析を有効にする」スイッチをすべてオフにする。また、すぐ下の「読みやすさの分析を有効にする」も同様にオフにする。

設定を保存してキャッシュをクリアする

画面下部の「変更を保存」ボタンをクリックする。保存後、サイトキャッシュやサーバーキャッシュを利用している場合は、念のため全キャッシュを削除する。管理画面から再度 LearnDash のコースページにアクセスし、本文が正しく表示されるようになっていれば完了だ。

LearnDash のバージョンアップで根本解決を図る

LearnDash のバージョンアップで根本解決を図る

上記の設定変更は対症療法であり、Yoast SEO の解析機能を一部犠牲にする方法だ。根本的には、LearnDash 側で Yoast SEO との互換性を高めたバージョンがリリースされるのを待ち、アップデートするのが望ましい。実際、LearnDash 5.1.8 のリリース後に同様の競合が複数報告されており、開発チームが修正パッチを準備している可能性が高い。

LearnDash の最新バージョンを確認する

WordPress 管理画面の「ダッシュボード」→「更新」、あるいは「プラグイン」→「インストール済みプラグイン」で LearnDash に更新通知が出ていないかチェックする。5.1.9 以降のバージョンが利用可能であれば、適用してから Yoast SEO の解析を再度有効に戻してみるとよい。なお、更新前に必ずサイト全体のバックアップを取ることは大前提だ。

それでも改善しない場合の追加チェック

まれに、Yoast SEO の「カスタム投稿タイプごとの noindex 設定」が一部影響しているケースもある。先ほどの「検索アピアランス」→「コンテンツタイプ」で、LearnDash の投稿タイプを「検索エンジンに表示する(index)」に設定し直すと、内部のフラグがリセットされて競合が解消したという報告もある。設定をいったんデフォルトに戻してから再度解析をオフにする、という手順を試してみる価値はある。

よくある質問

Yoast SEO を無効化せずに済ませたいが他に方法はあるか

Yoast SEO 全体を無効化するより、上記のとおり LearnDash の投稿タイプだけ解析をオフにする方法が最も手軽で影響が小さい。コースやレッスンの SEO タイトルやメタディスクリプションは Yoast SEO の「検索アピアランス」とは別の編集画面から入力できるため、最低限の SEO 対策は維持できる。

LearnDash 以外の LMS プラグインでも同じことが起きるのか

LifterLMS や LearnPress など他の LMS でも、Yoast SEO の解析がカスタム投稿タイプのテンプレートと干渉する事例は報告されている。いずれも Yoast SEO のコンテンツタイプ設定から解析をオフにすることで対処可能だ。

コンソールやログに何も出ないのはなぜか

PHP の致命的エラーが発生しているわけではなく、Yoast SEO が出力バッファ内でコンテンツの一部を誤ってカットしているだけだからだ。そのため WordPress のエラーログやブラウザの開発者ツールにも痕跡が残らない。

設定を変えても直らない場合はどうすればよいか

テーマや他のプラグインとの三重競合も考えられる。一度すべてのプラグインを停止し、標準テーマ(Twenty Twenty-Five など)に切り替えて LearnDash と Yoast SEO だけを有効にして再現するか確認する。原因を特定したら、該当プラグインのサポートに問い合わせるか、LearnDash のバージョンダウンを検討する。

LearnDash をダウングレードするのは安全か

緊急避難として 5.1.7 以前に戻す方法もあるが、セキュリティや機能面で後退するリスクを伴う。どうしても表示をすぐに復旧させたい場合に限り、バックアップを取ったうえで実施する。長期運用には上記の設定変更と最新版へのアップデート待ちを推奨する。

この記事のポイント

  • LearnDash 5.1.8 と Yoast SEO の組み合わせでコース本文が空白になる不具合は、Yoast SEO の解析エンジンが原因
  • 管理画面の「Yoast SEO」→「検索アピアランス」→「コンテンツタイプ」で LearnDash の投稿タイプの解析をオフにすれば即座に解消
  • PHP ログやコンソールにエラーが出ないため、見落としやすい
  • 根本対応は LearnDash の最新バージョンへのアップデートだが、緊急時は上記の設定変更でしのぐ
  • 他の LMS プラグインでも同様の競合が起きる可能性があるので、同じ手順で対処可能
Kadence Blocksでエディタのフォントがセリフ体になる原因と直し方

Kadence Blocksでエディタのフォントがセリフ体になる原因と直し方

Kadence Blocks の Advanced Typography で Google Fonts を選択したにもかかわらず、ブロックエディタ上でセリフ体のフォールバックフォントが表示される問題は、Kadence Blocks 3.7.3 以降のエディタ内フォント読み込み処理の変更に起因する。フロントエンドで正しく表示されているのであれば、エディタ側の設定やバージョン調整で解決できる。

なぜエディタ内だけ Google Fonts が正しく表示されないのか

なぜエディタ内だけ Google Fonts が正しく表示されないのか

Kadence Blocks の Advanced Typography は、サイトのフロントエンドとブロックエディタの両方に選択したフォントを読み込む仕組みになっている。しかしバージョン 3.7.3 以降、エディタ画面でのフォント読み込みパスや enqueue のタイミングに変更が入り、特定の環境下で Google Fonts のスタイルシートが正しく適用されなくなった。

実際の症状として、例えば Roboto を指定したのにエディタ上では明朝体や Times New Roman 系のセリフ体で表示される。これはブラウザが指定されたフォントを見つけられず、システムのデフォルトフォントにフォールバックしている状態だ。フロントエンドでは Kadence Theme 側のフォント読み込み処理が正常に機能するため問題が表面化しない。

この問題はプラグインの競合ではなく、Kadence Blocks 単体のエディタ向けフォント読み込み処理に起因する。そのため全プラグインを無効化しても再現し、標準テーマに切り替えても改善しない場合がある。

Kadence のフォント設定を確認して対処する

Kadence のフォント設定を確認して対処する

「外観」→「カスタマイズ」でフォントキャッシュを削除する

Kadence Theme には、Google Fonts のローカルキャッシュを管理する機能が組み込まれている。このキャッシュが破損していたり古い情報を保持していると、エディタで正しいフォントが読み込まれないことがある。

  1. WordPress 管理画面の「外観」→「カスタマイズ」を開く
  2. 「General」→「Performance」へ進む
  3. 「Google Fonts」セクションにある「Clear Font Cache」ボタンをクリックする
  4. カスタマイザーを保存して閉じ、ブロックエディタをリロードする

この操作で Kadence が保持していたフォント情報がクリアされ、次回エディタを開いた際に最新のフォントファイルが再取得される。キャッシュクリア後も改善しない場合は、次の手順に進む。

「Google Fonts の読み込み方法」を切り替える

Kadence は Google Fonts の読み込み方式を複数用意している。設定によってエディタ側のフォント描画に影響が出るため、別の方式に変更して検証する。

  • 「外観」→「カスタマイズ」→「General」→「Performance」→「Google Fonts」を開く
  • 「Load Method」を現在とは別のオプションに切り替える(例: 「Local」から「CDN」へ、またはその逆)
  • 保存後にブロックエディタを再読み込みしフォント表示を確認する

ローカル読み込み(Local)に設定すると、Google のサーバーからフォントをダウンロードして自サイト内に保存する。CDN 読み込みでは Google の配信網から直接フォントを取得する。サーバー環境やセキュリティ設定によっては、ローカル読み込み時のファイル生成に失敗してエディタ側のフォントが欠落することがある。

Advanced Typography のエディタ向け設定を確認する

Kadence Blocks のブロック設定パネルにある Advanced Typography には、エディタ内プレビュー用のフォント読み込みを制御する内部フラグが存在する。設定画面から直接変更できる項目ではないが、次の操作でリセットできる。

  1. 問題が発生しているブロックを選択し、右サイドバーの「Advanced」→「Typography」を開く
  2. フォント選択を一度「Default / Inherit」に戻し、保存する
  3. ページをリロードしたあと、再度目的の Google Fonts を選択し直す

これにより Kadence Blocks がエディタ向けにフォントを再登録し、正しいスタイルシートが読み込まれるようになる場合がある。

Before: セリフ体で表示される
見出しテキスト
エディタ上で Roboto を選択しているのに明朝体で表示されている
After: 選択した Google Fonts で表示される
見出しテキスト
Roboto が正しく適用され、フロントエンドと同じ見た目になった
セリフ体にフォールバック  Google Fonts が正常表示

上記のデモはエディタ画面内でのフォント描画の違いを表したものだ。修正後はフロントエンドと同じフォントがエディタでも適用される。

Kadence Blocks のバージョンを変更して問題を回避する

Kadence Blocks のバージョンを変更して問題を回避する

バージョン 3.7.2 にダウングレードする手順

この問題は Kadence Blocks 3.7.3 以降で発生し、3.7.2 では起こらないことが確認されている。どうしてもエディタ内のフォント表示を正しく保ちたい場合、一時的に 3.7.2 へ戻すのが確実な回避策になる。ただしダウングレードはセキュリティ面で推奨されないため、次のアップデートで修正されるまでの応急処置と割り切る。

  1. 管理画面の「プラグイン」→「プラグインの追加」→「プラグインのアップロード」ボタンをクリックする
  2. Kadence Blocks の旧バージョン(3.7.2)の ZIP ファイルをアップロードする
  3. 「現在のプラグインをアップロードしたものに置き換えますか?」という確認で「はい」を選択する
  4. プラグインが上書きされたら、必ず「自動更新を無効化」して意図しないアップデートを防ぐ

旧バージョンの ZIP ファイルは、WordPress.org のプラグインページにある「Advanced View」→「Previous Versions」からダウンロードできる。上書きインストール後はブロックエディタを再読み込みし、フォント表示が正常に戻ったか確認する。

アップデートで修正されたかを定期的に確認する

Kadence Blocks は更新頻度が高いプラグインのため、数週間以内にこの問題が修正された新バージョンがリリースされる可能性がある。ダウングレードした状態でも、WordPress 管理画面の「プラグイン」ページや Kadence の公式チェンジログを定期的にチェックし、修正版が公開されたら速やかに最新版へ更新する。

手動でエディタ用スタイルを補完する方法

手動でエディタ用スタイルを補完する方法

子テーマの editor-style.css でフォントを明示する

Kadence のエディタ内フォント読み込みが不安定な場合、子テーマにエディタ専用のスタイルシートを用意し、使用する Google Fonts を直接指定する方法が有効だ。これは Kadence の処理に依存せず、WordPress 標準の仕組みでエディタにフォントを読み込ませる。

/* 子テーマの functions.php に追加 */
function my_editor_styles() {
    add_theme_support( 'editor-styles' );
    add_editor_style( 'editor-style.css' );
}
add_action( 'after_setup_theme', 'my_editor_styles' );

/* 子テーマ直下の editor-style.css */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');

.editor-styles-wrapper {
    font-family: 'Roboto', sans-serif;
}

このコードにより、ブロックエディタの読み込み時に指定した Google Fonts が強制的に適用される。Kadence 側のフォント読み込み処理が失敗しても、エディタ上では正しいフォントが表示されるようになる。ただし、この方法はサイト全体に適用されるため、ページやブロックごとに異なるフォントを使い分けている場合は注意が必要だ。

Kadence のフィルターフックでエディタ用フォントを追加する

よりピンポイントに Kadence Blocks のエディタ向けフォント読み込みを補強したい場合、Kadence が提供するフィルターフックを利用する。次のコードを子テーマの functions.php に追加することで、エディタ用のフォントスタイルをプログラム的に挿入できる。

add_action( 'enqueue_block_editor_assets', function() {
    wp_enqueue_style(
        'custom-editor-fonts',
        'https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap',
        [],
        null
    );
}, 99 );

このフックはブロックエディタが読み込まれるタイミングで実行され、優先度 99 で登録することで Kadence の内部処理より後にスタイルを追加する。結果として、Kadence が読み込みに失敗した場合でも確実にエディタ上で Google Fonts が利用可能になる。

よくある質問

フロントエンドでは正しく表示されるのにエディタだけおかしいのはなぜか

Kadence Blocks はフロントエンドとエディタで別々のフォント読み込み処理を行っている。フロントエンドは Kadence Theme の仕組みが、エディタは Kadence Blocks の仕組みが担当しており、後者の処理に不具合があるとエディタ内だけでフォントが崩れる。表示確認の際は必ず両方の環境を見比べることが大切だ。

キャッシュを削除しても直らない場合はどうすればよいか

Kadence のフォントキャッシュクリアで改善しない場合、ブラウザキャッシュやサーバー側のキャッシュ(CDN やキャッシュプラグイン)もすべて削除する。その後も直らなければ、Kadence Blocks のバージョンを 3.7.2 にダウングレードするか、前述の editor-style.css による手動補完を検討する。

特定の Google Fonts だけがエディタで表示されないのはなぜか

フォントのウェイト数が多いものや可変フォント(Variable Fonts)は、Kadence のエディタ向け読み込み処理が対応しきれずに欠落することがある。この場合、問題のフォントを Kadence の「Custom Fonts」機能で手動アップロードするか、前述のフィルターフックで直接 Google Fonts の URL を指定すると安定する。

Kadence Blocks のバージョンを下げると他の機能に影響はあるか

3.7.2 へのダウングレードでは、3.7.3 以降に追加された新機能やバグ修正が失われる。具体的にはブロックの追加オプションやパフォーマンス改善が適用されない。ただし、基本的なブロック編集機能やフロントエンド表示には大きな影響は出ない。ダウングレードはあくまで応急処置として考え、修正版のリリースを待つ姿勢が安全だ。

別のテーマに切り替えたらエディタでフォントが表示されるようになった

Kadence Theme を無効化して別のテーマにすると、エディタ内のフォント管理がそのテーマ側に移るため問題が解消されることがある。これは根本的な解決ではなく、Kadence Blocks と Kadence Theme の組み合わせ特有の不具合であることを示している。テーマを変更できない場合は、やはり前述のコードによる手動補完が現実的な対処になる。

この記事のポイント

  • Kadence Blocks 3.7.3 以降のエディタ向けフォント読み込み処理に不具合があり、セリフ体にフォールバックする
  • 「外観」→「カスタマイズ」のフォントキャッシュクリアと読み込み方式の切り替えで改善する可能性がある
  • 一時的な回避策として Kadence Blocks を 3.7.2 にダウングレードする方法がある
  • 子テーマの editor-style.css やフィルターフックでエディタ用フォントを手動補完すると確実に表示できる
  • 修正版がリリースされたら速やかに最新バージョンへ更新することが重要