「Page Builder Sandwich で編集」ボタンが表示されない
サイトのフロントエンドに「Page Builder Sandwich で編集」ボタンが表示されない場合は、次の方法をお試しください:
管理バーが表示されていることを確認する
PB Sandwich の編集ボタンは、フロントエンドの管理バーに表示されます。管理画面に移動し、ユーザー > プロフィールに進み、サイトを見るときにツールバーを表示するのチェックボックスがオンになっていることを確認してください。

固定ページ、投稿、またはカスタム投稿タイプを表示していることを確認する
フロントエンドで編集できるのは、投稿、固定ページ、カスタム投稿タイプのみです。バックエンドの WordPress コンテンツエディターを使用して編集できる場合にのみ、フロントエンドで編集できます。サイトのその他の領域(例:フロントページのブログ投稿一覧、すべてのブログ投稿の一覧、カテゴリー一覧、404ページ、検索結果ページなど)は、WordPress と使用しているテーマによって作成される動的なページであり、PB Sandwich を使用して編集することはできません。
現在のウェブページが編集可能かどうかを示す目安の1つは、管理バーに「投稿を編集」または「固定ページを編集」が表示されているかどうかです。
コンテンツがテーマやプラグインによって動的に生成されていないことを確認する
ページ/投稿がテーマやプラグインによって動的に生成されている場合、Page Builder Sandwich(およびほとんどの場合、他のページビルダーでも)では編集できません。バックエンドのコンテンツエディターが空であるにもかかわらず、フロントエンドでページを表示するとコンテンツが充実している場合、そのページが動的に生成されている可能性が高いです。
ページが動的に生成されているかどうかを確認するには、ウェブページのソースを表示します(右クリックして「ページのソースを表示」を選択)。テキスト「pbs-main-wrapper」を検索し、そのテキストがどこにも見つからない場合、そのページは動的に生成されています。
動的に生成されるコンテンツの例をいくつか示します:
- カスタマイザーを使用して追加/編集する複数のウィジェットで構成されているページ
- 「1ページ」テーマによって複数のページがまとめられて構成されているページ(この場合、個々のページは編集できますが、結合されたページは編集できません)
- 最新のブログ投稿で構成されているページ
まずコンテンツを追加してみる
コンテンツが空白の場合、テーマがコンテンツをまったく表示せず、その結果 PBS がページが編集不可であると誤認してしまうケースがありました。これが原因かどうかを確認するには、バックエンドエディターでページ/投稿を編集し、コンテンツに何らかのテキスト(例:「こんにちは」など)を追加してみて、そこから「Page Builder Sandwich で編集」ボタンをクリックしてください。
このヒントを提供してくれた Mathias Hellquist 氏に感謝します!
ページが他のページビルダーに「所有」されていないことを確認する
一部のページビルダーでは、WordPress のデフォルトのコンテンツエディターを使用するか、ページビルダー自身のエディターを使用するかを選択させることがあります。すでに別のページビルダーを使用してページを編集している場合、そのページビルダーがすでにコンテンツを「専有」してしまい、他のコンテンツフック/フィルターが機能しなくなっている可能性があります。このため、Page Builder Sandwich がコンテンツの場所を検出できず、編集するものがないために編集ボタンが表示されないことがあります。
これを修正するには、その特定のページ/投稿で該当のページビルダーを使用しないようにオプトアウトし、WordPress のデフォルトのコンテンツエディターを使用するように選択してください。
ページに対する編集権限があることを確認する
ページを編集できない場合、編集ボタンは表示されません。たとえば、編集者や寄稿者としてサイトでブログ投稿や記事を作成できる場合でも、フロントページやお問合せページを編集できるとは限りません。管理バーに「投稿を編集」ボタンが表示されている場合は、PB Sandwich を使用して編集できるはずです。編集権限が必要な場合は、サイト管理者に依頼してください。
PB Sandwich の動作を妨げている JavaScript エラーがある可能性
PB Sandwich は JavaScript を多用しています。サイトにある他のスクリプトからの JavaScript エラーがある場合、PB Sandwich の動作が妨げられる可能性があります。これが原因かどうかを確認するには、ブラウザの開発者コンソールを開いてエラーを確認できます。
この確認には Chrome を使用することをお勧めします。ページ内の任意の場所を右クリックし、「検証」オプションをクリックします。ブラウザの下部に新しい領域が表示されるので、「コンソール(Console)」タブをクリックします。エラーがある場合は、次のように表示されます:

エラーが発生している場合は、スクリプト名をクリックまたはマウスカーソルを合わせることで、そのエラーがどこから発生しているかの手がかりを得ることもできます:

これらのエラーは、テーマや他のプラグインから発生している可能性があります。それらのエラーを修正することで、PB Sandwich が再び機能するようになる場合があります。
テーマまたはプラグインのいずれかが JavaScript エラーの原因となっている場合は、お気軽にメール([email protected])でお知らせください。問題解決に向けて最善を尽くします 🙂
CloudFlare を使用している場合は Rocket Loader がオフになっていることを確認する
CloudFlare は広く使われている無料の DNS CDN です。素晴らしいサービスですが、現在 PBS では Rocket Loader 機能に関して問題が発生します。Rocket Loader は JavaScript ファイルの読み込み時間を改善しますが、PBS スクリプトの依存関係や呼び出し順序を乱してしまいます。Rocket Loader が有効になっていると、Page Builder Sandwich の編集ボタンが表示されなくなります(そして JavaScript コンソールエラーも表示されません)。
サイトが CloudFlare の Rocket Loader を使用しているかどうかを確認するには、ウェブページのソースを表示し(右クリックして「ページのソースを表示」を選択)、「rocketscript」というテキストを検索します。そのテキストが見つかった場合、Rocket Loader が有効になっています。

オフにするための詳細な手順については、CloudFlare & Rocket Loader の互換性に関する記事をお読みください。
すべて試したのに編集ボタンがまだ表示されません!
さて、この段階で上記の解決策がいずれも機能しない場合は、なぜ表示されないのか、そしてそれに対して何をすべきかを説明する時が来たかもしれません。準備はいいですか?始めましょう!
「なぜ」(非技術的な言葉で)
Page Builder Sandwich は、ページ/投稿のコンテンツがどこにあるかを知る必要があります。これは、WordPress が投稿のコンテンツを読み込むタイミングをリッスンし、その領域を「マーキング」することで行われます。これにより、すべてが読み込まれたときに、目的のコンテンツがどこにあるかを見つけることができます。
時には、一部のプラグインがこのプロセスをオーバーライドまたはバイパスし、独自の方法でコンテンツを読み込もうとすることがあります。これで問題ない場合もありますが、特定のシナリオ、特にメインの投稿コンテンツの読み込みに関しては、一部のプラグインが機能しなくなる原因となる可能性があります。別のプラグインがこの読み込みプロセスをバイパスすると、行った「マーキング」が失われ、エディターが起動するタイミングでコンテンツがどこにあるかを見つけられなくなります。そのため、編集ボタンが表示されません!また、ソーシャル共有プラグインなど、ページにコンテンツを追加する一部のプラグインもまったく同じ理由で機能しなくなる場合があります。
「なぜ」(技術的な言葉で)
Page Builder Sandwich は、ページ/投稿のコンテンツがどこにあるかを知る必要があり、これは the_content フィルターにフックしてメインコンテンツの周りにラッパーを追加することによって行われます。一部のプラグインはこれをオーバーライドし、さらに先の処理で get_the_content() 関数を使用してコンテンツを上書きしてしまう場合があります。残念ながら、これを行うとすべての the_content フィルターの呼び出しがブロックされるため、PBS のラッパーが失われてしまいます。他のプラグインによる変更も同様に失われます。
get_the_content() を使用すること自体に何の問題もありませんが、すべての the_content フィルターが実行される通常の the_content() 呼び出しの代わりに、メインクエリ内および単一投稿テンプレートページ内で使用される場合、悪影響が生じる可能性があります。
どう対処すべきか
フロントエンドでページ/投稿にアクセスし、ログインした状態でページのソースを表示することで、Page Builder Sandwich の「マーキング」が存在しないかどうかを確認できます。入り組んだコードの中から次の文字列が見つかるか検索してください:
data-name="main-content"
見つかった場合は、どこかで JavaScript の問題が発生しているだけの可能性がありますので、使用しているテーマとプラグインをお知らせいただければ修正できます。
しかし見つからない場合は、テーマ(またはプラグインですが、固定ページやブログ投稿の場合はほぼ確実にテーマ)が投稿コンテンツに対して何らかの処理を行っているだけである可能性があります。この場合は、テーマの作成者に連絡して問題について知らせる必要があります!上記の技術的な「なぜ」の説明を見せることもでき、デバッグの役に立ちます 🙂
PHP をいじることに自信がある場合は、投稿コンテンツを処理するテンプレートファイルを見つけて修正を試みることができます。これまでに見られた解決策の1つは、次の呼び出しを置き換えることです:
$content = get_the_content();
次のように変更します:
ob_start(); the_content(); $content = ob_get_clean();<br>
注:お使いの環境によって PHP の変数は異なる場合がありますが、概念は同じです。これが機能する場合、テーマに直接この変更を加えるのではなく、子テーマを作成することをお勧めします。また、変更によって副作用が生じる可能性もあるため、この件についてはテーマの作成者に相談することをお勧めします。