フォーラムへの返信
-
投稿者投稿
-
下記、試してみてください!
♥ 0Who liked: No userヘッダーレイアウトは何に設定されていますか?
僕が書いたコードはヘッダーレイアウトが「中央ロゴ」の場合に適用されるものになります。フック名:snow_monkey_template_part_render_templates/layout/header/center
もし別のヘッダーレイアウトの場合はフック名が変わります。
1行:
snow_monkey_template_part_render_templates/layout/header/1row
2行:snow_monkey_template_part_render_templates/layout/header/2row
シンプル:snow_monkey_template_part_render_templates/layout/header/simple
左:snow_monkey_template_part_render_templates/layout/header/left
v27.0.1 にアップデートして確認してみてください!
♥ 0Who liked: No userご報告ありがとうございます! おそらく v27.0.0 でおこなった変更の影響だと思います。
すぐに修正します!
♥ 0Who liked: No userヘッダーコンテンツを使うとすれば、CSS で
position: sticky
にするのが簡単だと思います。.p-header-content.p-header-content--sm { position: sticky; top: 60px; /* ヘッダーの高さを指定 */ z-index: 2; }
ただ、
sticky
なので、コンテンツエリアに含まれているヘッダーコンテンツは、ページがスクロールされてフッターがでてくると、それに押し上げられる形でスクロールされてしまいます。どうしても常に表示させたいということであれば、ヘッダーコンテンツを使わずに、フックでヘッダーの中に HTML を追加する形のほうが良いかもです。/** * ヘッダーレイアウトが中央の場合 */ add_filter( 'snow_monkey_template_part_render_templates/layout/header/center', function( $html ) { $html = str_replace( '</header>', '<div>追加したい HTML</div></header>', $html ); return $html; } );
下記記事の上部では、「HTML 自体をカスタマイズしたかったり、PHP のコードを追加してテーマの挙動をカスタマイズしたい場合は子テーマをつくる必要があります。」と記載があります。
あーここ古い記述が残っているのか、確かに後のほうの記述と意味が合わないですね。ご指摘ありがとうございます!
➀両方の記事をしっかり確認し、今はMy Snow Monkey プラグインで、PHPコードの追加することで推奨しており、そちらでも問題なく動作が確認できると読み取ったのですが、その認識で正しいでしょうか。
はい、その通りです。
➁記事内で子テーマを作ると、下記のリスクがあると紹介されていますが、v5 からはプラグイン領域から全てのカスタマイズが可能になったということで、「プラグイン」でもカスタマイズできるのでは?と書かれています。プラグインでPHPのカスタマイズが出来る場合、下記のリスクはなくなると理解して良いでしょうか。もし、プラグインでPHPのカスタマイズする際にリスクがあればお伺いしたいです。
(1)ウィジェットの設定とか、カスタマイザーの設定ってテーマに紐づいているので、テーマを切り替えるとリセットされる
(2)子テーマをつくるとテンプレートの上書きを気軽にやってしまう問題ご認識の通りです。(2) については、My Snow Monkey プラグインを使ってテンプレートの上書きをやりたい場合はコードを追加する必要があるので、気軽にテンプレートの上書きをしにくいから一定の抑止になるのではないかという意味です。あるテンプレートをまるっきり別の内容にしたい場合はテンプレートの上書きをするしかないかなと思いますが、一部分だけを変えたい場合はフックを使ったほうが、画面の表示が崩れるリスクは低いかなと思います。
➂親テーマをアップデートした場合に、カスタマイズの設定が消えない方法(リスクが少ない方法)が知りたいです。
WordPress のアップデートは、ネット上から最新版のファイルをダウンロードしてきて、サーバー上のファイルを置き換えるという挙動をします。なので親テーマ(や WordPress コア、プラグイン)を直接触ってしまうと、アップデートのときにネット上からダウンロードされてきたファイルで上書きされてしまい、書いたコードが消えてしまいます。
なのでアップデートが発生しない部分、ここでは子テーマや My Snow Monkey プラグインにコードを書いておけば、アップデートのときに書いたコードが消えてしまうリスクは無くせます。
データの共有ありがとうございます。トップページで真っ白になるのが確認できたので調査してみました。
まず、ブラウザのデベロッパーツールに
Uncaught SyntaxError: Unexpected token '<'
というエラーがでていることが確認できました。編集ページの JavaScript 内に構文エラーがあり、その影響でエディターのレンダリングに失敗している、という状況のようでした。Snow Monkey Blocks と Snow Monkey Editor を無効化すると編集画面が開けるようになったので、トップページのコンテンツを取り出して VS Code に貼り付けてみました。すると、
普通ではない行終端記号が検出されました
このファイル ‘Untitled-3’ には、行区切り文字 (LS) や段落区切り記号 (PS) などの特殊な行の終端文字が 1 つ以上含まれています。
それらをファイルから削除することをお勧めします。
というメッセージが表示されました。VS Code 上でその文字列を削除できたので削除し、編集画面に貼り付けてみると、真っ白にならずに表示されました。
なぜ Snow Monkey Blocks と Snow Monkey Editor が有効化されているときだけ真っ白になるかはわかりませんが、特殊な終端文字が入るのはおそらく一般的ではないため、何かからエディターにコピペされているのであればそこで入っていると思うので、打ち直したり、一旦 VS Code などのエディターに貼り付けたものを貼り付けたりして、特殊な終端文字を削除するのが良いのではないかなと思います。
※ Snow Monkey Blocks と Snow Monkey Editor はエディターの拡張やブロックの追加をするために
wp-block-editor
とwp-preferences
という、WordPress コアのライブラリを使用しているのですが、それを読み込まないようにすると真っ白にならないというところまではわかりました。ただ、そのライブラリを使わないと機能拡張ができないので、やはり特殊文字を削除してもらうのが良いと思います…。共有ありがとうございます!
オンラインコミュニティのDMか、問い合わせフォームから送っていただければと思います!
再現方法としては、適当なページの編集画面を開いて、保存、ページ表示、再編集を繰り返せば良いですかね?
♥ 0Who liked: No userEWWW Image Optimizer が何らかのエラーを出したっぽいですが、これでは真っ白にはならない気がします(EWWW Image Optimizer を使ったことが無いので予想です)。
あとできることといえばそうですね、WordPress のデバッグモードは有効にされていますでしょうか?してないのであれば、有効化すると、またエラーが起きた時に画面にエラーメッセージが確認できるようになるかもなので有効化してみてください。
あと、もしエラーが発生した時のコンテンツが何とかコピーできるなら頂きたいです。編集画面には入れなくても実際のページは見れるのであれば…。コンテンツがあればこちらの環境でもエラーが発生する確認できるので、可能ならお願いします!
♥ 0Who liked: No userあ、すみません、こっちかもです><
logs/php/error.log
♥ 0Who liked: No userサーバーのエラーログに何か状況がわかるログが残っているかもしれません。
「ローカル環境」とのことですが、例えば Flywheel の Local であればそのサイトのディレクトリの
logs/php/php-fpm.log
でログが確認できます。エラーが起こったときに何かログに出力されていないか確認してみてください!
♥ 0Who liked: No userv21.0.6 で変更を入れてみました! アップデートして確認してみてください。
♥ 0Who liked: No user再現できました!
Fatal error: Uncaught TypeError: trim(): Argument #1 ($string) must be of type string, array given in /xxxxxxx/wp-includes/style-engine/class-wp-style-engine-css-declarations.php:63
↑こうですよね?
どうもブロックの間隔を「上下」「左右」別々で設定すると発生するようです。↑不具合が発生する
↑不具合が発生しない
どのように修正を入れれば良いかこれから調査しますが、ひとまず、「上下」「左右」別々ではない形で設定すれば不具合は解消するかと思いますので試してみてください!
※一度ばらばらの入力欄にしたのをどうやって戻せば良いのかはわかりませんでした(この挙動自体が不具合な気がします)。新規でフレックスボックスをいれると1つにまとまった入力欄になりました。
そのファイル名の前の部分にどのようなエラーかが書いていると思うのですが、何かメッセージが無いでしょうか?
例えば
PHP Notice: Undefined variable:
みたいな感じです。♥ 0Who liked: No user確か以前に
.is-provider-wp-oembed-blog-card { padding-top: 2em; }
という CSS を追加したことがあると思うのですが、なぜかブログカードのクラス名が
.is-provider-wp-oembed-blog-card
から.is-provider-livingskape
に変わっているために、その CSS が効かなくなってしまっているみたいです。なので、下記のように CSS を変更してみてください。
.is-provider-wp-oembed-blog-card, .is-provider-livingskape { padding-top: 2em; }
♥ 0Who liked: No user -
投稿者投稿