WordPress Gutenbergブロックを検索結果に表示
WordPress 5.0では、Gutenbergとも呼ばれる新しいブロックエディターが導入されました。この新しいエディターは、WordPressでのコンテンツ作成方法を完全に変えます。
また、データベースでのコンテンツの保存方法も根本的に変更されるため、多くの点でWordPressのネイティブ検索の動作に影響を与えます。
Gutenbergのデータ保存方法
Gutenberg以前は、WordPressはコンテンツを表すプレーンなHTMLマークアップを保存し、ウェブサイトにそのまま表示していました。しかし、Gutenbergはコンテンツをシリアライズされた形式で保存し、追加のコンテンツを含みます。
(読みやすさのために、数行の改行が追加されています)
| <!-- wp:paragraph --> | |
| <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tincidunt nunc vel | |
| consequat dapibus. Pellentesque aliquet felis nulla, sit amet efficitur mauris | |
| finibus in. </p> | |
| <!-- /wp:paragraph --> | |
| <!-- wp:heading --> | |
| <h2>Lipsum dolor sit</h2> | |
| <!-- /wp:heading --> | |
| <!-- wp:list {"ordered":true} --> | |
| <ol><li>Massa dictum</li><li>Neque vitae</li><li>Porta ut morbi eu</li></ol> | |
| <!-- /wp:list --> | |
| <!-- wp:image {"id":47} --> | |
| <figure class="wp-block-image"> | |
| <img src="http://site.com/wp-content/uploads/coffee-image.png" alt="" class="wp-image-47"/> | |
| </figure> | |
| <!-- /wp:image --> | |
| <!-- wp:paragraph --> | |
| <p>Vivamus eleifend, erat eu scelerisque condimentum, justo dui dictum neque, rutrum ornare | |
| est leo vel erat. Donec auctor tempor scelerisque. In dapibus elit velit, vitae tincidunt | |
| urna porta ut. Morbi eu euismod massa. </p> | |
| <!-- /wp:paragraph --> |
このコンテンツはGutenbergがそのように動作するために必要ですが、データベースに保存され、 subsequently WordPressのネイティブ検索によって検索される追加のコンテンツが導入されます。
これはGutenbergのためにWordPressで新しいことではありません。問題は常に存在していましたが、Gutenbergは以前のエディターよりもかなりの量のデータを挿入することで問題を悪化させます。
さらに、使用できるブロックに制限はなく、毎日新しいブロックが作成されており、それぞれ独自の機械言語がコンテンツと一緒に保存されています。
検索における問題点
一見すると、データベースに保存される追加内容はあまり影響しないように思われます。WordPressのネイティブ検索は、「段落」、「見出し」、「画像」などの用語を含む上記のすべてのコンテンツに対してチェックします。
各Gutenbergブロックは独自の保存メカニズムを使用しており、これによりWordPressのネイティブ検索の関連性が低下するコンテンツや、まったく検索されたくないコンテンツが導入される可能性があります。
対照的に、SearchWPはコンテンツをインデックス化する前に最適な方法で処理します。これには、Gutenbergによって生成されたマークアップの削除や、訪問者がサイトにアクセスしたときに実際に表示されるコンテンツ(データベースに保存されている機械言語ではなく)のインデックス化が含まれます。
これはWordPressのネイティブ検索の既知の制限であり、許容される状況としてフラグが立てられています:WordPress検索、Gutenbergシリアライゼーションマークアップによる予期しない結果 #3739
Gutenbergによる検索のさらなる複雑化
Gutenbergは、ブロック編集という概念を超えた多くの新しいツールをエディターに提供する上で優れた仕事 をしています。再利用可能なブロックという機能もあります。
再利用可能なブロックは、その名の通り、サイト全体で再利用できるブロックを作成できます。これは、コンテンツの維持と作成に時間と労力を節約するための素晴らしい方法です!
残念ながら、再利用可能なブロックは、エントリに追加するときは次のようになりますが:
データベースでは、そのブロックは次のようになります(7行目)。これがWordPressのネイティブ検索が見ることができるものです:
(読みやすさのために、数行の改行が追加されています)
| <!-- wp:paragraph --> | |
| <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus | |
| tincidunt nunc vel consequat dapibus. Pellentesque aliquet felis | |
| nulla, sit amet efficitur mauris finibus in. </p> | |
| <!-- /wp:paragraph --> | |
| <!-- wp:block {"ref":50} /--> | |
| <!-- wp:heading --> | |
| <h2>Lipsum dolor sit</h2> | |
| <!-- /wp:heading --> | |
| <!-- wp:list {"ordered":true} --> | |
| <ol><li>Massa dictum</li><li>Neque vitae</li><li>Porta ut morbi eu</li></ol> | |
| <!-- /wp:list --> | |
| <!-- wp:image {"id":47} --> | |
| <figure class="wp-block-image"> | |
| <img src="http://mysite.com/wp-content/uploads/coffee-cup.png" alt="" class="wp-image-47"/> | |
| </figure> | |
| <!-- /wp:image --> | |
| <!-- wp:paragraph --> | |
| <p>Vivamus eleifend, erat eu scelerisque condimentum, justo dui dictum neque, rutrum | |
| ornare est leo vel erat. Donec auctor tempor scelerisque. In dapibus elit velit, vitae | |
| tincidunt urna porta ut. Morbi eu euismod massa. </p> | |
| <!-- /wp:paragraph --> |
WordPressのネイティブ検索の仕組みにより、この再利用可能なブロックの実際のコンテンツは見つからず、Gutenbergによって使用されるブロックの機械言語参照のみが見つかります。
再利用可能なブロックはコンテンツ管理には素晴らしいですが、WordPressのネイティブ検索では機能しません。
これもWordPressの標準検索の既知の制限事項です:再利用可能なブロックの内容が検索結果に表示されない #10307
SearchWPはこれらのブロックを解析し、インデックス作成前にGutenbergの機械コードを実際のコンテンツに変換するため、再利用可能なすべてのコンテンツブロックの内容を検索できるようになります。
SearchWPによるこの追加の解析は、必要に応じてカスタマイズ、微調整、または無効にすることもできます!
SearchWPでGutenberg検索を修正
WordPressサイト用に別の検索インデックスを維持することで、WordPressが提供するすべての機能を活用できます。ただし、デフォルトの検索実装の欠点はそのままです。


