フォーラムへの返信
-
投稿者投稿
-
下記記事の上部では、「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【お使いの Snow Monkey Blocks のバージョン】21.0.5
となっていますが、今の最新が 21.0.5 なので、21.0.5 に更新しようとするけど失敗して 21.0.5 未満のバージョンを使っているのか、それとも、更新に失敗と出はするけど、21.0.5 にはなっているのか、どちらの状況でしょうか?
「更新に失敗しました」については様々な原因が考えられると思うので原因が何というのは難しいかなと思うのですが、そのエラーが発生したときに、ブラウザのコンソールやサーバーのエラーログに何らかのエラーの詳細が出力されている可能性があるので、それらを見てみると何かわかるかもしれません。
♥ 0Who liked: No userv21.0.5 で最大値を50まで上げました! アップデート後、書いたコードを消して、編集画面で設定してみてください。
♥ 0Who liked: No user下記のように1行追加するとどうですかね?
add_filter( 'snow_monkey_get_template_part_args_template-parts/widget/snow-monkey-posts', function( $args ) { // 最近の投稿ブロックのとき if ( 'snow-monkey-blocks/recent-posts' === $args['vars']['_context'] ) { // レイアウトが「リッチメディア」のとき if ( 'rich-media' === $args['vars']['_entries_layout'] ) { // 表示件数を変更 $args['vars']['_posts_query']->posts_per_page = 30; // クエリーを再設定 $args['vars']['_posts_query']->query( $args['vars']['_posts_query']->query_vars ); // この行を追加 } } return $args; } );
12件を超えての表示数の設定は要望として結構多いので、もう12件以上設定できるように変更を入れいたいと思います!
♥ 0Who liked: No userライセンスキーは原則「契約者」が使用することができます。それを契約者以外に譲渡したり共有したりすることは禁止しています。
今回の場合、契約者は「otomeweb さんの所属団体」ということですよね。従って、「otomeweb さんの所属団体」が所有するサイトには制限なく使用することができますが、それ以外のサイトに使用することはできません。例外として、受託契約を結んで受託制作したクライアントさんのサイトには使用できることとしているので、「otomeweb さんの所属団体」が受託契約を結んで制作したクライアントさんのサイトにも使用できます。
ということで、otomeweb さんが個人として受託契約を結んで制作したクライアントさんのサイトには、「otomeweb さんの所属団体」が所有しているライセンスキーは使用できません(技術的には利用できますが、規約的に禁止となります)。
ここまでは大丈夫だろうという自己判断がどんどん広がっていって、結果的に誰かから共有してもらえば契約しなくても普通に使えるという状態になってしまうと Snow Monkey の開発を続けること自体が難しくなってしまうため、このような線引にしています。何卒ご理解いただけると!
♥ 0Who liked: No user「カテゴリーのとき」とのことですが、正確には「タクソノミーアーカイブのとき」ですかね?
カテゴリーアーカイブのときとタクソノミーアーカイブのときで条件分岐に使う関数が変わってきますので。タクソノミーの場合だと、
is_tax()
で判定できます。「商品一覧」には投稿した全ての商品が表示されてしまいます。
念の為確認ですが、今作業しているのはあくまでパンくずの表示を変えるだけで、ページ自体には何も変更を入れていません。なので「商品一覧」ページには商品一覧が表示されます。もし商品一覧に一覧を表示させたくないのであれば、その商品一覧(カスタム投稿アーカイブ)のテンプレートを上書きして表示を書き換えるか、商品一覧ページに遷移したときに強制的に別のページにリダイレクトさせるなどの処理が必要かなと思います。
-
投稿者投稿