フォーラムへの返信
-
投稿者投稿
-
そうですね、それが良いと思います。
今サイトも拝見したのですが、おそらく WordPress が 6.0 ですかね? もしそうだとしたら結構古いので、一気にアップデートするとデザインの崩れがおこる可能性も考えられるかなと思います。
個人的には、念の為テスト環境的なところでアップデートして問題がないことを確認してから本番環境のアップデートをおこなうのが良いのではないか、とは思います。
もしテスト環境が無い場合は、All in One WP Migration 等のプラグインでサイトをエクスポートして、テスト用の環境にインポートする、というのが簡単な方法かなと思います。が、
– WordPress のバージョンが低いので All in One WP Migration のようなエクスポート・インポート用のプラグインがちゃんと動くのか
– Snow Monkey のエラーがでている状態ではエクスポートできないと思うのでこの場合もリネームしてエラーを消してからが良いかもという懸念点はありますね…。
スクショすみません、これはインサーター(各ブロックを挿入するためのパネル)のスクショなので、最近の投稿ブロックの設定パネル(画面右側に展開するパネル)のスクショをみたいです!
♥ 0Who liked: No user恐らく WordPress のバージョンが、Snow Monkey がサポートしているより低いのだと思います。
管理画面に入れないとのことであれば、FTP ツールでサーバーに接続し、wp-content/themes/snow-monkey フォルダを適当な名前にリネームしてみてください。多分それで管理画面に入れるようになると思うので、WordPress をアップデートしてください。アップデートできたらリネームしたフォルダの名前を元に戻してください。
※ただ、アップデート後の WordPress のバージョンがお使いのプラグインやカスタマイズに対応しているものかはわからないので、すごく古いバージョンを使っていたのでしたら、ちょっと他の方法を考えた方が良いかもです。
♥ 0Who liked: No userカスタム投稿の最近の投稿の選択が出てきませんでした。
最近の投稿ブロックの設定パネルに、投稿タイプを選択するセレクトボックス自体が表示されないのでしょうか? それとも、セレクトボックスは表示されるけど「施工事例」という選択肢が表示されないのでしょうか?
また、可能であれば、最近の投稿ブロックの設定を確認したいので、最近の投稿ブロックの設定パネルのスクショをみたいです!
♥ 0Who liked: No user「このブロックでエラーが発生したためプレビューできません」が表示されたタイミングで、ブラウザのコンソールに何らかのエラーメッセージが表示されると思います。
そのメッセージを見れば原因が特定できる場合があるので、メッセージ、あるいはメッセージが確認できるスクショをここに貼り付けてください!
♥ 0Who liked: No userあーこれちょっと難しい問題ですね…。
一応、
add_filter( 'render_block_snow-monkey-forms/snow-monkey-form', function( $html ) { return str_replace( 'smf-focus-point', '', $html ); } );
というコードで
.smf-focus-point
を消すことはできるのですが、フォームの画面遷移が画面リロード無しで非同期で実行されるため、.smf-focus-point
が無いとフォームの先頭への移動が実行されず、送信してもその位置のままになるからかなり操作感がわるくなってしまいます。ちなみに、
確認画面、完了画面でフォームより上の文言を変更しているのですが、
Snow Monkey Forms は入力・確認・完了画面の遷移が同一ページ上で行われるので、フォームの外側で、確認画面と完了画面だけ文言を変えるというのが普通ではできないのでは?と思ったのですが、どのように実装されているのでしょうか?
template-parts/archive/entry/entry
テンプレートパーツでは日付表示の有無がコントロールできないので(できるようにしたほうが良いかもですが)、まず、下記のように変更してみてください。\Framework\Helper::get_template_part( 'template-parts/archive/entry/entry', 'all-entries', // ここを変える $args );
↓
\Framework\Helper::get_template_part( 'template-parts/archive/entry/entry', 'marketing-entries-archive', // ユニークなものならなんでも良いですが、ここでは marketing-entries-archive としておきます $args );
次に、メタ情報のテンプレートパーツの引数をカスタマイズします。
add_filter( 'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/meta/meta', function( $args ) { // 先で指定した name 付き(marketing-entries-archive)でテンプレートパーツが呼ばれたときだけ実行 if ( 'marketing-entries-archive' === $args['name'] ) { $args['vars']['_display_published'] = true; // 日付を表示 } return $args; } );
試してみてください!
んーとなると
is_page()
に何かあるんですかね〜。でもこちらの環境ではis_page()
を使ってもPHP Deprecated:
は出力されなかったので、is_page()
+ 何か、あるいはis_page()
のときに発火する何か、みたいな可能性もあるのかなと思いました。トピックのクローズをお願いします!
♥ 0Who liked: No userまず前提として、
– 埋め込みに失敗しました
– Snow Monkey 公式サイトトップページのブログカードのレイアウトが編集画面で崩れるについては、WordPress のデフォルトの挙動でした。
その上で、Snow Monkey は
– WordPress がブログカードとして表示できないもの(つまり↑であげたもの)
– WordPRess がブログカードとして表示するもののそれぞれについて、それぞれに別々の処理をして、結果としてどちらも同じデザインのブログカードを表示する、ということをやっています。さらに、ブログカードの表示処理は実際のページと編集画面とはまた別の処理になっていて、今回は編集画面用の処理に不具合があったことが原因でした。
編集画面用の処理は、まずそれがブログカードにするかどうかを判定する必要があって、その判定処理が
$request_uri = filter_input( INPUT_SERVER, 'REQUEST_URI' ); if ( ! $request_uri ) { return false; }
の部分でした。で、サーバーの環境によって
filter_input( INPUT_SERVER, 'REQUEST_URI' )
という書き方ではデータがとれないことがあるみたいで、そういう環境用にif ( ! $request_uri ) { $request_uri = esc_html( wp_unslash( $_SERVER['REQUEST_URI'] ?? '' ) ); }
という処理を追加しました。これでより多くの環境で正しく条件判定ができるようになり、JKDECOR さんのサイトでもちゃんと表示するようになった、ということになります。
Snow Monkey v27.0.2 としてリリースしているのでアップデートして改めて確認をお願いします!
♥ 0Who liked: No userちょっと下記をやってみてほしいです!
snow-monkey/vendor/inc2734/wp-oembed-blog-card/src/Bootstrap.php
のprotected function _is_block_embed_rendering_request() { $reuest_uri = filter_input( INPUT_SERVER, 'REQUEST_URI' );
を
protected function _is_block_embed_rendering_request() { $reuest_uri = filter_input( INPUT_SERVER, 'REQUEST_URI' ); if ( ! $reuest_uri ) { $reuest_uri = $_SERVER['REQUEST_URI']; }
に変更
♥ 0Who liked: No userとりあえず管理画面をみた範囲で。
ブログカードの仕組みは、
– URL が貼られる
– 次の URL にリクエストを送る(下記は YouTube のチャンネルの URL を貼り付けた場合の例)
https://livingskape.jkdecor.com/wp-json/oembed/1.0/proxy?url=https%3A%2F%2Fwww.youtube.com%2F%40BingJapan&_locale=user
– ブログカードのもとになるデータが生成されて返ってくる
– それをもとにブログカードを表示するとなっています。このリクエストがなぜか404になってしまうみたいです。
Snow Monkey 公式サイトでは正しくデータが返ってくるので、今時点で怪しいなと思うのはセキュリティプラグインやサーバー側のセキュリティ機能で REST API が制限されている、とか、
.htaccess
に独自のリライトルールを追加している、が怪しいかなと感じました。もしセキュリティプラグインを使っていたり、サーバー側のセキュリティ機能を有効化している場合はそれを停止してみてください。
また、.htaccess
を独自にいじっているようであれば、その内容を教えてください。♥ 0Who liked: No userお返事遅くなりすみません! いただいたコードをテスト環境にはりつけて試してみました。
PHP 8.1、8.2、8.3 で試してみたのですが、いずれの環境でもエラーは確認できませんでした。
別の要因がエラーの原因である可能性もあるのかな?と思いましたので、以下について教えてください。
以下のエラーが出力されました。
PHP Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /ホスト/ドメイン/public_html/フォルダ/wp-content/themes/snow-monkey/vendor/inc2734/wp-view-controller/src/App/Contract/Template_Tag.php on line 194上記について、エラーはどこに出力されたのでしょうか? 画面上、エラーログ等…。
エラーログだった場合、
error_log('$inquiry: ' . print_r($inquiry, true));
の部分をerror_log('$inquiry: ' . print_r($inquiry, true), 3, get_template_directory() . '/error_log');
のようにすると、そのエラーはsnow-monkey/error_log
に出力されるのか、それともサーバーのエラーログに出力されるのかどちらでしょうか?もう一点、子テーマや My Snow Monkey によるテンプレートの上書き、あるいは
snow_monkey_get_template_part_render
フィルターフックを使ったカスタマイズはされていますでしょうか?
している場合、それをやめるとエラーは発生しなくなりますか?♥ 0Who liked: No userまず All-in-One WP Migration プラグインをサイトにインストールし、エクスポートしてください。
僕もエクスポートされたデータを頂くばかりで詳しい操作方法はわからないので、詳しいやり方はググってみてください。エクスポートできたら、オンラインコミュニティ(Discrod)で僕に DM で送ってください!
♥ 0Who liked: No user詳しくありがとうございます。プラグインや CSS の状況が同じでも、3パターンの不具合が発生するということは、原因は一つではないのかもしれません…。
ちょっとこれ以上は実際にコードを書き換えたりしながら詳しく調査しないとわからなさそうなので、下記のいずれかをご対応いただくことは可能でしょうか?
1. All-in-One WP Migration でエクスポートしたデータと WordPress のログイン情報を提供いただく
2. 直接サイトにログインして調査させていただくただ、コードを書き換えたりしないと調査が難しいと思うので、できれば(1)のほうが安全かなとは思います。
ご検討よろしくお願いします!♥ 0Who liked: No userありがとうございます。となると
snow_monkey_forms/administrator_mailer/args
にフックさせた処理に何かある可能性もあるのかなと思いました。こちらでも試してみたいので、
snow_monkey_forms/administrator_mailer/args
にフックさせた処理をここに貼り付けてもらうことはできますか?♥ 0Who liked: No user -
投稿者投稿